`
webcenterol
  • 浏览: 950717 次
文章分类
社区版块
存档分类
最新评论

确定Windows XP到底是UCS-2的还是UTF-16的

 
阅读更多

确定Windows XP到底是UCS-2的还是UTF-16

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie

讨论新闻组及文件

一般认为Windows下以16bit表示的Unicode并不是UTF-16,而是UCS-2UCS-2是一种编码格式,同时也是指以一一对应关系的Unicode实现。在UCS-2中只能表示U+0000U+FFFFBMP(Basic Multilingual Plane ) Unicode编码范围,属于定长的Unicode实现,而UTF-16是变长的,类似于UTF-8的实现,但是由于其字节长度的增加,所以BMP部分也做到了一一对应,但是其通过两个双字节的组合可以做到表示全部Unicode,表示范围从U+0000 U+10FFFF。关于这一点,我在很多地方都看到混淆了,混的我自己都有点不太肯定自己的说法了,还好在UTF-16/UCS-2中还是区别开了,不然我不知道从哪里去寻找一个正确答案。(哪怕在IBM的相关网页上都将UCS-2作为UTF-16的别名列出)

UTF-16/UCS-2文中有以下内容:

UTF-16 is the native internal representation of text in the Microsoft Windows 2000/XP/2003/Vista/CE; Qualcomm BREW operating systems; the Java and .NET bytecode environments; Mac OS X's Cocoa and Core Foundation frameworks; and the Qt cross-platform graphical widget toolkit.[1][2][citation needed]

Symbian OS used in Nokia S60 handsets and Sony Ericsson UIQ handsets uses UCS-2.

The Joliet file system, used in CD-ROM media, encodes filenames using UCS-2BE (up to 64 Unicode characters per file).

Older Windows NT systems (prior to Windows 2000) only support UCS-2.[3]. In Windows XP, no code point above U+FFFF is included in any font delivered with Windows for European languages, possibly with Chinese Windows versions.[clarification needed]

很明确的说明了Windows 2000以后内核已经是UTF-16的了,这点还真是与平时的感觉相违背,于是可以测试一下。在UTF-16的编码转换函数(Python实现)

中我在windows下输出了三个太玄经的字符,“

分享到:
评论
1 楼 applehxb 2012-12-07  
这篇博客没写完吗?

相关推荐

    UCS-2转换为utf-8代码

    UCS-2转换为UTF-8代码集完整版 UCS-2(Universal Character Set 2)是一种 Unicode 编码形式,用于表示 Unicode 字符。...通过使用 UCS2toUTF8Code 函数和 TStr2UTF8 函数,可以实现 UCS-2 到 UTF-8 的转换。

    GB13000 UCS-2格式转UTF-8

    身份证读卡器生成的基本信息TEXT文件,由于是采用 GB 13000 的 UCS-2 编码格式,java读取出来是乱码,这个段代码就是解决转码问题的,亲测可用

    SDL_iconv:用于转换字符编码的库。 在单个C文件中。 支持ASCII US-ASCII 8859-1 ISO-8859-1 UTF8 UTF-8 UTF16 UTF-16 UTF16BE UTF-16BE UTF16LE UTF-16LE UTF32 UTF-32 UTF32BE UTF-32BE UTF32LE UTF-32LE UCS2 UCS-2 UCS-2LE UCS- 2BE UCS-2-INTERNAL UCS4 UCS-4 UCS-4LE UCS-4BE UCS-4-INTERNAL

    UTF-16 UTF16BE UTF-16BE UTF16LE UTF-16LE UTF32 UTF-32 UTF32BE UTF-32BE UTF32LE UTF-32LE UCS2 UCS-2 UCS-2LE UCS-2BE UCS-2-INTERNAL UCS4 UCS-4 UCS-4LE UCS-4BE UCS-4-INTERNAL SDL_...

    汉字UCS-2编码表.doc

    汉字UCS-2编码表.doc

    ATzhiling.rar_ucs-2_windows 8

    然而,随着更多语言和特殊字符的加入,UCS-2无法容纳所有Unicode字符,因此后来发展出了UCS-4(32位)和UTF-16(可变长度,包含UCS-2的前16位平面)。 在Windows 8系统中,由于其广泛的国际支持,UCS-2编码被广泛...

    UCS-2 UCS-4 中文字符编码 TTF字库之间地关系.doc

    例如,Windows记事本可能默认支持更广泛的Unicode编码,因此能够正确显示UCS-2和UCS-4编码的字符,而某些其他编辑器可能只支持UCS-2,导致UCS-4编码的字符无法正常显示。 了解这些概念后,我们可以理解为什么在不同...

    Ansi与Ucs2互转.rar

    UCS-2覆盖了大部分Unicode字符集,包括大部分常用的语言,但无法表示Unicode的全部字符,因为Unicode后来发展出的UTF-16LE或UTF-16BE等变种可以处理更多的四字节字符。 在进行Ansi与UCS-2的转换时,我们需要考虑...

    UCS2-汉字互相转换

    UCS2,全称Unicode Transformation Format - 16,是一种编码标准,用于表示Unicode字符集。Unicode是一个全球统一的字符编码系统,旨在涵盖世界上几乎所有的文字系统,包括汉字。UCS2使用固定宽度的16位(2个字节)...

    深度学习 三维重建 UCS-Net-CVPR-2020 (源码、原文+译文)

    深度学习 三维重建 UCS-Net——CVPR-2020 (源码、原文+译文) 深度学习 三维重建 UCS-Net——CVPR-2020 (源码、原文+译文) 深度学习 三维重建 UCS-Net——CVPR-2020 (源码、原文+译文) ...深度学习 三维重建 UCS

    航天卫星数据UCS卫星数据库UCS-Satellite-Database-5-1-2022

    UCS-Satellite-Database-5-1-2022 UCS发布的全球卫星数据库,包含通信、导航、遥感等领域的卫星基本信息,数据截止到2022年5月1日,来源:https://www.ucsusa.org/resources/satellite-database

    输出中文Font 'STSongStd-Light' with 'UniGB-UCS2-H' is not recognized

    `UniGB-UCS2-H`表示的是GB2312编码的宽字节(16位)Unicode汉字编码,采用水平字形布局。在iText中,当处理中文字符时,需要确保字体库包含了相应的Unicode映射,以便正确地解码和渲染。 解决方案可能包括以下几个...

    ucs2和GB转换表

    GBK是在UCS-2之前广泛应用于Windows操作系统和许多中文软件中的编码方式。 GB2312是1980年代中国制定的国标汉字编码,它是GBK的前身,仅包含6763个常用汉字和682个非汉字图形符号,主要针对简体中文。GB2312编码...

    GB2312,UTF8,UCS2汉字编码生成与转换工具

    UCS2,即Unicode字符集的16位编码形式,属于Unicode标准的一部分。每个字符用两个字节来表示,理论上能表示65536个不同的字符。UCS2简洁明了,但无法涵盖Unicode的全部扩展,因此在处理包含大量辅助平面字符(如表情...

    VCB API UCS 与UTF编码转换

    `WideCharToUtf8` 和 `Utf8ToWideChar` 是C++Builder中的函数,用于UCS-2(或UTF-16)和UTF-8之间的转换。在VB中,可以使用PInvoke(Platform Invoke)技术调用这些API函数。 在实际应用中,如果需要在VB程序中实现...

    UTF-8 GB2312 UCS 码互换

    - 当UCS-2编码的字符位于U+0000到U+007F范围内时,UTF-8编码与UCS-2完全相同。 - 对于UCS-2编码的字符在U+0080到U+007FF范围内的,UTF-8使用两个字节编码。 - U+00800到U+FFFF范围内的UCS-2字符,UTF-8使用三个字节...

    Unicode字符的UTF-8、UTF-16、UTF-32编码方式[总结].pdf

    Unicode 字符的 UTF-8、UTF-16、UTF-32 编码方式 Unicode 字符集是计算机上使用的一种字符编码,它为每种语言中的每个字符设定了统一并且唯一的二进制代码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode...

    ucs2Gbk互转的code_自己写的

    UCS-2是Unicode编码的一种变体,它使用16位(两个字节)来表示每个字符,能够表示65536个不同的字符,涵盖了大部分常用的语言,包括中文。然而,由于历史原因和兼容性问题,UCS-2并不包含所有Unicode字符,特别是...

    Unicode详解(UTF-8,UTF16,UCS)

    Unicode详解(UTF-8,UTF16,UCS)

Global site tag (gtag.js) - Google Analytics