研究研究 ES_OEMCONVERT 标志

news2024/9/21 16:27:54

ES_OEMCONVERT 这个标志,主要是用在 16 位 Windows 系统上。下面是一篇 MSDN 上的文章中对它的一段描述:
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 的用户不允许输入中文字符作为文件名,即使文件系统完全能够创建名称包含这些字符的文件。

总结

今天文章的意义,不在于如何使用 ES_OEMCONVERT ,而是,在你吭哧吭哧编写界面代码的时候,如果看到了这个标志,你不至于一点感觉都没有。
现在你的状态应该是:ES_OEMCONVERT 对我的程序没有任何有用或者有害的影响,我不需要使用它。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《What is the deal with the ES_OEMCONVERT flag?》

 

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

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

相关文章

【在Vue脚手架项目中使用axios】

目录 1. 安装axios 2. 在main.js中添加配置 1. 安装axios 首先,需要安装axios,则在终端窗口中,在当前项目文件夹下,执行安装命令: 如果没有权限进入C盘找到cmd的执行软件,用管理员启动,进入目…

作为外贸业务员,为什么我经常随机轻松 就“捡“到精准潜在客户

心里夹杂着很多情绪和想法,沉浸在客户背调里面走不出来,但我还是决定不得不暂停下得心应手的google背调,记录一下此时此刻的想法。 01 我曾好多次在文章里表露出做外贸业务背调是非常关键的一环,而在背调里一些细微的关键信息非常…

自适应滤波器更新算法-EP3

文章目录1、PNLMS和IPNLMS算法1.1 算法原理2.2 算法分析2、一种改进的时变参数的比例自适应滤波算法2.1 算法原理2.2 算法分析2.3 算法性能评价标准2.3.1 均方误差(Mean Square Error, MSE)2.3.2 失调(Misalignment, MIS)2.3.3 回声衰减系数(Echo Return Loss Enhancement, ERL…

【音视频开发】为什么无损音频会有44.1Khz这样的奇葩采样率?

文章目录一、 问题:为什么无损音频会有44.1Khz这样的奇葩采样率?二 、PCM流程2.1 PCM流程2.2 PCM量化方式2.2 量化位数2.3 比特率三、答疑解惑3.1 使用采样定理来解释3.2 以影片磁带录音?硬件限制而来的 44.1kHz3.3 关于44100和质数的关系四、…

【关于检查请求参数的基本有效性】

目录 检查请求参数的基本有效性 检查请求参数的基本有效性 在服务器端项目中,可以通过spring-boot-starter-validation对请求参数进行检查。 在客户端项目中,Element UI的示例表单中都有对各控件(例如输入框、选择框等)的检查。…

[附源码]Python计算机毕业设计Django校园生活服务平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

DBCO的PEG连接剂1480516-75-3,DBCO-PEG4-Maleimide(MAL)

DBCO-PEG4-Maleimide试剂反应原理: DBCO-PEG4-Maleimide是包含马来酰亚胺基团和DBCO部分的PEG连接剂。亲水性PEG间隔臂提高了在水缓冲液中的溶解度。马来酰亚胺基团与硫醇特异有效地反应,形成稳定的硫醚键。低质量将为改性分子添加间隔物,并…

任务(task)

任务(task) 一、 任务概述 线程(Thread)是创建并发的底层工具,因此有一定的局限性(不易得到返回值(必须通过创建共享域);异常的捕获和处理也麻烦;同时线程执…

Linux软件包管理

Linux软件包管理实验目的及要求1.了解RPM特点与YUM工作机制。2.熟悉RPM软件包的密钥管理。3.掌握RPM、YUM或DNF包管理方法及其命令。实验原理实验步骤1.查询当前已安装的RPM包,在安装光盘上查找尚未安装的RPM包,通过命令和图形界面的多种方式进行安装、升…

年龄到了一定程度才能体会到世界杯的真正意义

前言 聊起来世界杯,想必读者们都有说不完的世界杯话题,四年一届的全球盛会,把全世界的目光都牢牢的拿捏在手里,世界杯不仅仅是关于足球的比赛活动,而且更是团队协作精神、永不言弃等精神的体现和传承。年轻的时候可能是…

在线点餐系统毕业设计,外卖点餐系统设计与实现,毕业设计论文源码需求分析

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于java的外卖点菜系统,管理员通过后台添加菜品,用户浏览器登录,查看菜品、购买、下单等。根据需求,本系统采用的是BS(Browser Server简称浏览器服…

[论文分享] IR2Vec: LLVM IR Based Scalable Program Embeddings

IR2Vec: LLVM IR Based Scalable Program Embeddings [TACO 2020] S. VENKATAKEERTHY, ROHIT AGGARWAL, Indian Institute of Technology Hyderabad 我们提出了IR2Vec,一种简洁且可扩展的编码框架,将程序表示为连续空间中的分布式嵌入。这种分布式嵌入…

java反射所需要了解的基本知识点

反射概述 反射:通过运行时操作元数据或对象,Java 可以灵活地操作运行时才能确定的信息,指程序可以访问、检测和修改它本身状态或行为的一种能力。 其相关类在下面这个包里面:java.lang.reflect.*; 反射机制相关的重要的类&#…

图解系统:

1.硬件结构 1.1.存储器的层次关系 每个存储器只和相邻的一层存储器设备打交道,并且存储设备为了追求更快的速度,所需的材料成本必然也是更高,也正因为成本太高,所以 CPU 内部的寄存器、L1\L2\L3 Cache 只好用较小的容量&#xff…

node中文件的上传

node基于Express项目实现文件的上传 1、FormData对象:以对象的方式来表示页面中的表单,又称为表单对象。以key-value的方式来保存数据,XMLHttpRequest对象可以轻松的表单对象发送的服务器端; (1)使用构造…

图解LeetCode——1775. 通过最少操作次数使数组的和相等(难度:中等)

一、题目 给你两个长度可能不等的整数数组 nums1 和 nums2 。两个数组中的所有值都在 1 到 6 之间(包含 1 和 6)。 每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成 1 到 6 之间 任意 的值(包含 1 和 6&a…

【vim】Darcula 配色设置

因为本人一直习惯了用 Jetbrains 家的产品,而且一直独钟 Dracula 配色,因此想要在 Git Bash 中为 vim 配一款 Dracula 配色。本博客将详细介绍如何为 vim 配置暗系主题 Dracula。 一、安装 Dracula 在 Dracula 的官网其实已经给出了关于如何在 vim 中配…

夯实算法-课程表

题目:LeetCode 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必…

Linux系统编程5——Socket编程(网络通信)

文章目录前言一、套接字二、基础知识三、网络套接字函数3.1、struct sockaddr3.2、socket函数3.3、bind函数3.4、listen函数3.5、accept函数3.6、connect函数3.7、读取/发送数据函数3.8 客户端服务器通信demo四、select函数1、TCP状态简介2、端口复用2.1、setsockopt函数3、半关…

云之道知识付费v1.5.4小程序+前端(含pc付费插件)

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 云之道知识付费v1.5.4小程序前端(含pc付费插件) 版本号:1.5.4 – 商用无限开 无需重新上传小程序 【修复】上一版本公众号版本打开白屏问题 版本号&a…