wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么Windows和Linux系统的创建者选择不同的方式来支持Unicode?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

据我所知, Linux选择了UTF-8的向后兼容性,而Windows为UTF-16添加了全新的API函数(以“W”结尾).这些决定会有所不同吗?哪一个证明更好? UTF-16几乎是一个损失,两个世界中最糟糕的.它既不紧凑(对于典型的ASCII字符),也不会将每个代码单元映射到一个字符.由于基本多语言平面之外的人物仍然很少使用,但这并没有真正咬过任何人,但它肯定是丑陋的. POSIX(Linux等)
据我所知,Linux选择了UTF-8的向后兼容性,而Windows为UTF-16添加了全新的API函数(以“W”结尾).这些决定会有所不同吗?哪一个证明更好?
UTF-16几乎是一个损失,两个世界中最糟糕的.它既不紧凑(对于典型的ASCII字符),也不会将每个代码单元映射到一个字符.由于基本多语言平面之外的人物仍然很少使用,但这并没有真正咬过任何人,但它肯定是丑陋的.

POSIX(Linux等)也有一些基于wchar_t类型的w API.在Windows以外的平台上,这通常对应于UTF-32而不是UTF-16.这对于简单的字符串操作很有用,但却非常臃肿.

但是内存中的API并不是那么重要.导致更多困难的是@L_696_7@存储和线上协议,其中数据在具有不同字符集传统的应用程序之间交换.

在这里,紧凑性优于易于索引;到目前为止,UTF-8被证明是最好的格式,而Windows对UTF-8的支持不佳会导致真正的困难. Windows是最后一个仍然具有特定于语言环境的认编码的现代操作系统;其他人认都转为UTF-8.

然我真的希望微软能够在未来的版本中重新虑这个问题,因为即使在仅限Windows的世界中它也会引起巨大而不必要的问题,但它是如何发生的,这是可以理解的.

在过去设计WinNT时的想法是UCS-2是用于Unicode的.在16位字符范围之外没有任何东西.每个人都会在内存中使用UCS-2,自然最简单的方法就是直接从内存中保存这些内容.这就是为什么Windows将这种格式称为“Unicode”,并且直到今天仍然在UI中将UTF-16le称为“Unicode”,就像保存盒一样,尽管它完全是误导性的.

在Unicode 2.0之前,UTF-8甚至没有标准化(连同扩展的字符范围和使UTF-16成为今天的代理).到那时,微软已经开始使用WinNT4,此时改变战略已经太晚了.简而言之,微软在Unicode处于起步阶段的时候,从头开始设计新的操作系统是不吉利的.

大佬总结

以上是大佬教程为你收集整理的为什么Windows和Linux系统的创建者选择不同的方式来支持Unicode?全部内容,希望文章能够帮你解决为什么Windows和Linux系统的创建者选择不同的方式来支持Unicode?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。