如何使Windows 7支持12000(UTF-32)代码页或1200(UTF-16)代码页

How to make Windows 7 to support 12000(UTF-32) code page or 1200(UTF-16) code page?

本文关键字:代码 UTF-16 1200 UTF-32 何使 Windows 7支持 12000      更新时间:2023-10-16

有没有办法让windows 7支持12000(UTF-32)代码页或1200(UTF-16)代码页?

否。这些代码页不能设置为当前MBCS代码页。(也就是说,"ANSI"API使用的代码页,例如使用终端a(如CreateWindowA)命名的Windows函数,或C或C++运行时中C语言环境使用的代码页面)。

  • 无法支持UTF-32,因为windows MBCS代码页支持仅允许占用一个或两个字节的字符。

  • 由于同样的原因,不能支持UTF-16-BMP之外的字符需要四个字节来表示。

  • 此外,UTF-8也不受支持,因为有些字符需要四个字节来表示。

通过使用UNICODE API(即W变体,例如CreateWindowW,以及宽字符C和C++库函数),您可以本机使用UTF-16(Little-endian变体)。此外,您可以使用MultiByteToWideCharWideCharToMultiByte在UTF-32、UTF-8、UTF-16BE和UTF-16LE之间进行转换。

如果您正在编写一个基于windows的程序,您应该只使用UNICODE API。如果您正在为C运行时编写一个希望可移植的程序,您可能希望为windows构建UNICODE版本,为Unix/Linux构建UTF-8版本。