作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这让我很感兴趣,所以我要问 - 为什么 wchar_t
在 Linux/类 Linux 系统上没有像在 Windows 上那样广泛使用?具体来说,Windows API 在内部使用 wchar_t
而我相信 Linux 不会,这反射(reflect)在许多使用 char
类型的开源包中。
我的理解是给定一个字符c
需要多个字节来表示它,然后在char[]
形式c
被拆分在 char*
的几个部分上,而它在 wchar_t[]
中形成一个单元。那么,总是使用 wchar_t
不是更容易吗?我错过了否定这种差异的技术原因吗?或者这只是一个收养问题?
最佳答案
wchar_t
是一个具有平台定义宽度的宽字符,这并没有太大帮助。
UTF-8 字符每个字符跨越 1-4 个字节。 UCS-2 每个字符恰好跨越 2 个字节,现已过时并且不能表示完整的 Unicode 字符集。
支持 Unicode 的 Linux 应用程序倾向于在字节存储层之上正确地执行此操作。 Windows 应用程序倾向于作出这种愚蠢的假设,即只有两个字节就可以了。
wchar_t
's Wikipedia article简要介绍了这一点。
关于c - 为什么 wchar_t 没有广泛用于 Linux/相关平台的代码中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588302/
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我是一名优秀的程序员,十分优秀!