Visual c++ Unicode和多字节文章的混淆
通过引用 有些人在政府的控制之下 对Unicode仅仅是一个 每个字符所用的16位代码 16位,因此有65536位 可能的字符。这不是,, 事实上,没错 读完整篇文章后,我的观点是,如果有人告诉你,他的文本是unicode的,你将不知道他的每个字符占用了多少内存空间。他必须告诉你,“我的unicode文本是用UTF-8编码的”,那么只有你知道他的每个字符占用了多少内存空间 Unicode=每个字符不需要2个字节Visual c++ Unicode和多字节文章的混淆,visual-c++,unicode,internationalization,Visual C++,Unicode,Internationalization,通过引用 有些人在政府的控制之下 对Unicode仅仅是一个 每个字符所用的16位代码 16位,因此有65536位 可能的字符。这不是,, 事实上,没错 读完整篇文章后,我的观点是,如果有人告诉你,他的文本是unicode的,你将不知道他的每个字符占用了多少内存空间。他必须告诉你,“我的unicode文本是用UTF-8编码的”,那么只有你知道他的每个字符占用了多少内存空间 Unicode=每个字符不需要2个字节 然而,说到和,这让我很困惑: 微软: Unicode是一个16位字符 编码,提供足
然而,说到和,这让我很困惑: 微软: Unicode是一个16位字符 编码,提供足够的编码 适用于所有语言。所有ASCII码 字符包括在Unicode中,作为 “加宽”字符
代码项目: Unicode字符集是“宽”字符集 字符集“(每个字符2字节) 包含每个字符的 提供各种语言版本,包括 所有技术符号和特殊符号 发布字符。多字节 字符集(MBCS)使用1或 每个字符2字节 Unicode=每个字符2个字节? 65536个可能的字符能够代表世界上所有的语言吗 为什么web开发者社区和桌面开发者社区的概念看起来不同?很久以前
- Unicode在16位中只有尽可能多的字符,并且
- UTF-8不存在或不是要使用的实际编码
(UTF-16和UCS-2之间的区别在于UCS-2是真正的每“字符”16位编码,因此只编码Unicode的“BMP”(基本多语言平面)部分,而UTF-16使用“代理项对”(总共32位)编码BMP字符以上。)扩展@Kevin的答案: 描述是微软的帮助已经过时了,在NT3.5/4.0时间表中描述了世界的状态 您还会偶尔看到UTF-32和UCS-4也被提到,在*nix世界中最常见。UTF-32是UCS-4的一个子集的32位编码。描述了它们之间的区别 我发现描述各种编码模型的最佳参考是,尤其是第4节中的表 65536个可能的字符能够代表世界上所有的语言吗 没有 为什么web开发者社区和桌面开发者社区的概念看起来不同 因为Windows文档是错误的。我花了一段时间才弄明白。MSDN至少在两个地方指出Unicode是一种16位编码:
查看有关混淆来源的更详细信息。OK。因此,在上面的内容中,unicode表示“以UTF-16编码的unicode”,它不需要每个字符16位,而且可以超过16位。我说的对吗?UTF-16确实不是固定宽度编码,因为它使用了代理对您必须从其他来源或实验中确定他们称为“Unicode”的数据实际上是UTF-16(可以有替代项并表示所有Unicode)还是UCS-2(不能有替代项;只能表示Unicode的BMP部分)。-我没有关于术语“MBCS”的信息。唯一正确的建议是Unicode是一组代码点。UCS-2或UTF-16是这些代码点的编码。然后读取代码点,并在屏幕上显示为字符。虽然简体中文中的一个字符可能由许多代码点组成,但Utf-16取代了UCS-2(不是同一件事)。