宽字符字符串文字是否以 UTF-16LE 编码?
Are wide characters string literals encoded in UTF-16LE?
假设我有以下内容:
wchar_t *str = L"Hello World!";
L"Hello World!"
是以 UTF-16LE 还是 UTF-16BE 编码的?
注意:我使用的是 Visual C++ 2010。
您可以安全地假设 Windows 上的任何宽字符串都使用小端 UTF-16 - 请参阅此答案以获得更详细的说明:Can I safely assume that Windows installations will always be little-endian?
取决于您的编辑器,VS2010 默认使用 UTF-8 :) 带有 BOM,以便编译器可以分辨。可以更改,单击“保存”按钮上的箭头。
编译器会在目标文件中将其转换为UTF-16LE,据我所知msvc++支持的big-endian机器已经没有了,ARM内核现在都是运行 little-endian。
假设我有以下内容:
wchar_t *str = L"Hello World!";
L"Hello World!"
是以 UTF-16LE 还是 UTF-16BE 编码的?
注意:我使用的是 Visual C++ 2010。
您可以安全地假设 Windows 上的任何宽字符串都使用小端 UTF-16 - 请参阅此答案以获得更详细的说明:Can I safely assume that Windows installations will always be little-endian?
取决于您的编辑器,VS2010 默认使用 UTF-8 :) 带有 BOM,以便编译器可以分辨。可以更改,单击“保存”按钮上的箭头。
编译器会在目标文件中将其转换为UTF-16LE,据我所知msvc++支持的big-endian机器已经没有了,ARM内核现在都是运行 little-endian。