翻译《The Old New Thing》 - What is the deal with the ES_OEMCONVERT flag?

news2024/5/20 2:15:46

What is the deal with the ES_OEMCONVERT flag? - The Old New Thingicon-default.png?t=N7T8https://devblogs.microsoft.com/oldnewthing/20050719-12/?p=34893

Raymond Chen 在 2005年07月19日


 ES_OEMCONVERT 标志是怎么回事?

简要

文章讨论了 ES_OEMCONVERT 编辑控件风格的起源和用途,以及为什么在现代 Windows 系统中它不再必要。

正文

   ES_OEMCONVERT 编辑控件风格是 16 位 Windows 系统的遗留物。这篇古老的 MSDN 文章来自 Windows 3.1 SDK,它这样描述这个标志:

ES_OEMCONVERT 导致输入到编辑控件的文本从 ANSI 转换为 OEM,然后再转换回 ANSI。这确保了当应用程序调用 AnsiToOem 函数将编辑控件中的 Windows 字符串转换为 OEM 字符时,字符转换是正确的。ES_OEMCONVERT 对于包含文件名的编辑控件最有用。

         将时光机设置到 1992 年 1 月 31 日,即文章的日期。

        在这个时候,主要的 Windows 平台是 Windows 3.0。Windows 3.1 还有几个月就要发布,而 Windows NT 3.1 还要一年多。主要的文件系统是 16 位 FAT,而 FAT 在这个时代的相关特性,就本次讨论而言,是文件名以 OEM 字符集存储在磁盘上。(我们之前在文章中讨论了 OEM 和 ANSI 代码页之间分歧的历史。)

        由于 GUI 程序使用 ANSI 字符集,但文件名以 OEM 字符集存储,因此 GUI 程序中可以从文件名中使用的字符是同时存在于这两个字符集中的字符。如果一个字符存在于 ANSI 字符集中但不在 OEM 字符集中,那么就没有办法使用它作为文件名;如果一个字符存在于 OEM 字符集中但不在 ANSI 字符集中,GUI 程序就无法操作它。

        编辑控件上的 ES_OEMCONVERT 标志确保只使用同时存在于 ANSI 和 OEM 字符集中的字符,因此有评论说“ES_OEMCONVERT 对于包含文件名的编辑控件最有用”。

        快进到今天。

        所有流行的 Windows 文件系统都支持 Unicode 文件名,并且已经支持了十年。不再需要从 ANSI 字符集转换为文件系统使用字符集时的数据丢失。因此,没有必要过滤掉任何字符以防止用户输入在转换为文件名时会丢失的字符。换句话说,ES_OEMCONVERT 标志在今天毫无意义。它是 Unicode 出现之前时代的遗留物。

        实际上,如果你使用这个标志,你会使你的程序变得更糟,而不是更好,因为它不必要地限制了用户在文件名中可以使用的字符集。例如,运行美国英语版 Windows 的用户将不允许输入中文字符作为文件名,尽管文件系统完全能够创建包含这些字符的文件名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DNS域名解析服务的部署及优化方案

实验要求: 1.配置2台服务器要求如下: a)服务器1: 主机名:dns-master.timinglee.org ip地址: 172.25.254.100 配置好软件仓库 b)服务器2: 主机名:dns-slave.timinglee.org ip地址&am…

element-plus el-time-picker 时间段选择(可多选)

实现一个如图的时间段选择器 处理好时间回显逻辑&#xff0c;组件内[‘’,‘’],后端数据[{startTime:‘’,endTime:‘’}]处理好加和减的显示逻辑 <template><div><div v-for"(item, index) in currentChoose" :key"index" class"fl…

Linux实操之常用指令详解

文章目录 vi 和 vimvi 和 vim 基本使用 开机、重启和用户登录注销关机&重启命令用户登录和注销 用户管理基本介绍基本语法细节说明修改密码删除用户查询用户信息指令切换用户查看当前用户/登录用户用户组 实用指令指定运行级别帮助指令文件目录类时间和日期类搜索查找类压缩…

向各位请教一个问题

这是菜鸟上的一道题目&#xff0c;单单拿出来问问大家&#xff0c;看看能不能解惑 &#xff0c;谢谢各位&#xff01; 题目25&#xff1a;求12!3!...20!的和 解题思路&#xff1a;这个题不知道为什么我用DEV C 5.11显示出来为0.000000&#xff0c;可能版本有问题&#xff1f;&a…

装饰器模式-原理分析以及动手练习

目录 应用场景涉及的角色和类&#xff08;个人理解&#xff09;涉及的角色组件&#xff08;标准&#xff09;基本实现 Demo&#xff08;可以直接 copy 跑一下看效果&#xff09;自己动手实战需求参考答案 相关话题参考文章 应用场景 需要给一个现有类添加附加功能&#xff0c;…

如何安全可控地进行内外网跨网络传输文件?

跨网络传输文件通常指的是在不同的网络环境之间移动数据&#xff0c;这在现代企业运营中非常常见。随着网络技术的高速发展&#xff0c;为了有效地保护内部的核心数据资产&#xff0c;企业一般会采用内外网隔离的策略。在进行内外网跨网络传输文件时&#xff0c;需要考虑多种因…

Java性能优化(一):Java基础-ArrayList和LinkedList

引言 集合作为一种存储数据的容器&#xff0c;是我们日常开发中使用最频繁的对象类型之一。JDK为开发者提供了一系列的集合类型&#xff0c;这些集合类型使用不同的数据结构来实现。因此&#xff0c;不同的集合类型&#xff0c;使用场景也不同。 很多同学在面试的时候&#x…

2024爆火的AI设备Rabbit R1到底是什么?有人说它是AI的iPhone时刻,有人说它是套壳的安卓

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

22_Scala集合Seq

文章目录 Seq序列1.构建集合2.List集合元素拼接&&集合拼接3.可变Seq&&List3.1 ListBuffer创建3.2 增删改查3.3 相互转化 Appendix1.Scala起别名2.Seq底层3.关于运算符操作: :4.空集合的表示 Seq序列 –Seq表示有序&#xff0c;数据可重复的集合 1.构建集合 …

IOS离线打包uniapp的信息时报错如下的解决方法

IOS离线打包uniapp的信息时报错如下的解决方法 问题描述&#xff1a; Extract app intents metadata 0.1 seconds XExtractAppIntentsMetadata(in target HBuilder from project HBuilder-Hello)cd /Users/whb/space/vpt/vptios/HBuilder-Hello/Applications/Xcode.app/Conte…

短视频素材有版权吗?8个没版权的短视频素材购买

在数字媒体日益盛行的今天&#xff0c;高效地利用视频素材不仅能够提升视觉效果&#xff0c;还能有效传达信息和吸引观众。以下是一些全球知名的视频素材网站&#xff0c;它们提供从基础到高端的各类素材&#xff0c;帮助您在任何视频项目中实现创意和提升影响力。 1. 蛙学府&…

Ansible——Playbook剧本

目录 一、Playbook概述 1.Playbook定义 2.Playbook组成 3.Playbook配置文件详解 4.运行Playbook 4.1Ansible-Playbook相关命令 4.2运行Playbook启动httpd服务 4.3变量的定义和引用 4.4指定远程主机sudo切换用户 4.5When——条件判断 4.6迭代 4.6.1创建文件夹 4.6.2…

STM32单片机ADC功能详解

文章目录 1. ADC概述 2. ADC结构图 3. 引脚定义 4. 转换模式 5. 数据对齐 6. 转换时间 7. 硬件电路 8. STM32使用ADC单/多通道检测数据 1. ADC概述 功能&#xff1a;ADC是一个将模拟信号&#xff08;如电压&#xff09;转换为数字信号的设备。在微控制器中&#xff0c…

有哪些方式可以有效地评估精益生产咨询公司的能力?

在寻求精益生产咨询服务的过程中&#xff0c;评估咨询公司的能力至关重要。这不仅关乎企业精益生产转型的成功与否&#xff0c;更直接影响到企业未来的竞争力和发展。那么&#xff0c;有哪些方式可以有效地评估精益生产咨询公司的能力呢&#xff1f; 首先&#xff0c;了解咨询公…

【一起深度学习-----VGG】

VGG 原理图&#xff1a; 原理图&#xff1a; 为啥要使用VGG块呢&#xff1f; 对于AlexNet网络来说&#xff0c;虽然十分高效了&#xff0c;但是它并没有提供一个通用的模板&#xff0c;方便后续的研究。 故采用了模块化的思想&#xff0c;方便重复使用。 其实对比于AlexNet神经…

爬虫学习(3)豆瓣电影

代码 import requests import jsonif __name__ "__main__":url https://movie.douban.com/j/chart/top_list#post请求参数处理&#xff08;同get请求一致&#xff09;headers {"User-Agent": Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53…

智启算力平台基本操作

智启算力平台 智启算力平台路径搭载数据集搭载镜像配置 智启算力平台 开发文档 帮助文档 - OpenI - 启智AI开源社区 路径搭载 OpenIOSSG/promote: 启智AI协作平台首页推荐组织及推荐项目申请。 - notice/Other_notes/SDKGetPath.md at master - promote - OpenI - 启智AI开…

docker部署elasticsearch7.7.0级拼音(pinyin)插件和分词(ik)插件

拉取并启动es docker run -d --namees -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" elasticsearch:7.7.0安装pinyin插件 下载pinyin插件 下载ik插件 上传插件到服务器 docker cp /path/to/elasticsearch-analysis-pinyin-7.7.0.zip elasticsearch…

Python读取ASC文件并转换成Excel文件(坐标)

import pandas as pd# 读取asc文件&#xff0c;指定空格为分隔符 df pd.read_csv(out_view2.asc, sep , headerNone)# 去掉空列 df df.dropna(howall, axis1)# 将数据保存到Excel文件 df.to_excel(out_view2.xlsx, indexFalse, headerFalse)效果图

【busybox记录】【shell指令】cut

目录 内容来源&#xff1a; 【GUN】【cut】指令介绍 【busybox】【cut】指令介绍 【linux】【cut】指令介绍 使用示例&#xff1a; 关于参数的特殊说明&#xff1a; 打印行中选定部分 - 输出每行的第n-m个字节 打印行中选定部分 - 输出每行的第n-m个字符 打印行中选定…