假设我有以下代码:
wchar_t *str = L"Hello World!";
L"Hello World!"
是用UTF-16编码的,但是没有指明是UTF-16LE还是UTF-16BE。
注意:我使用的是Visual C++ 2010。
假设我有以下代码:
wchar_t *str = L"Hello World!";
L"Hello World!"
是用UTF-16编码的,但是没有指明是UTF-16LE还是UTF-16BE。
注意:我使用的是Visual C++ 2010。
你可以安全地假定在Windows上的任何宽字符字符串都使用小端UTF-16编码 - 可以查看这个答案获取更详细的解释:我可以安全地假定Windows安装将始终是小端吗?
根据你的编辑器,VS2010默认使用UTF-8编码 :) 带有BOM以便编译器可以识别。这可以通过单击保存按钮上的箭头进行更改。
编译器将其转换为UTF-16LE格式在目标文件中,我所知道的msvc++不再支持任何大端机器,现在所有的ARM核心都运行于小端模式。