C ++ - WriteFile - Utf16LE

时间:2013-09-02 14:39:08

标签: c++

lpwstr字符串的默认字节顺序是什么?

我正在使用WriteFile()函数将数据写入c ++中的文件。我猜它在utf-16BE中写入数据。我需要在utf-16le中写入数据。我可以实现它吗?

用Google搜索了几个小时,我找不到解决方案。

2 个答案:

答案 0 :(得分:1)

如果您使用的是LPWSTR,我会说您使用的是Windows(及其变体),因此可能在Intel / AMD机器上,因此它已经是Little Endian。 LPWSTR使用处理器的字节序。 Windows从未被移植到Big Endian(至少从我所知道的那里)

请注意,至少有一个例外:XBOX 360是Big Endian。

答案 1 :(得分:1)

WriteFile不对您的数据进行转换或其他更改。如果你传递一个LPWSTR,那么它会把它写在它存储在LPWSTR的字节顺序中 - 在任何运行Windows的机器上都是PROBABLY“little endian”(至少,我一直都是这样)我们查看了一个Windows“Unicode”字符串,它是16位Little Endian数据。