windows的CP_ACP代码页与CP_OEMCP代码页区别

网友投稿 1042 2022-09-12

windows的CP_ACP代码页与CP_OEMCP代码页区别

windows的CP_ACP代码页与CP_OEMCP代码页区别

1、对于CJK(多字节编码)的环境(泰文,日文,韩文,中文),CP_ACP与CP_OEMCP没有区别。

2、对于非 CJK(单字节编码)的环境这两个代码页不同

1)对应的实际代码页不同,例如English-US的环境,ACP对应1252,OEMCP而437。

2)一个字节能表示的数值范围是(0-255),对于小于128的编码,437和1252对应的字符是一样的。

3)对于大于128的编码,是不一样的,有可能有些OEM字符(大于128的编码)在437中不存在,有些ASCII(大于128的编码)字符在1252中不存在。

4)相同的编码,对应的字符有可能不同。

5)同理,相同的字符对应的编码有可能不同。

3、windows的文件操作的API默认使用ASCII代码页(即CP_ACP),设备的操作的函数使用OEM代码页(即CP_OEMCP)。

结论: 如果与设备没有关系(即不读写设备)那么使用ACP,否则使用OEMCP(注意读写console的函数是对console设备的操作,所以默认使用OEMCP)。

文件读写API使用的代码页可以通过调用API来实现在CP_ACP与CP_OEMCP更替的。Console的操作也可以通过API来实现CP_ACP与CP_OEMCP更替的

代码页 437 与 1252 的字符编码的区别参见链接:

http://worldlingo.com/ma/enwiki/zh_cn/Western_Latin_character_sets_(computing)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何利用DFS实现文件服务器的双机容错(在没有cluster环境的时候)
下一篇:递归函数(递归函数求阶乘)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~