Windows中使用的默认unicode字符编码是什么?

时间:2014-06-02 03:04:53

标签: windows winapi unicode encoding windows-runtime

Windows中使用的默认unicode字符编码是什么?特别是在Windows编程(Win32和WinRT)中。当我在WinAPI中编程时,“char”映射到1字节字符存储,“wchar_t”映射到2字节字符存储。如果UTF-16以4字节编码超过65536的所有字符,那么Windows如何在“wchar_t”数据类型中映射这些字符?我知道我的问题不够明确,但我希望你理解我的一些担忧。非常感谢你!

1 个答案:

答案 0 :(得分:3)

Windows使用UTF-16LE表示所有Unicode(MultiByteToWideChar()WideCharToMultiByte()除外,它们支持UTF-7,UTF-8和UTF-16,以及其他安装在其中的字符集OS)。 UTF-16使用surrogate pairs(2个16位值一起工作)来编码高于0xFFFF的Unicode值。例如,Unicode代码点U + 1D11E在UTF-16LE中编码为0xD834 0xDD1E(字节0x34 0xD8 0x1E 0xDD)。