0

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

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

谷歌搜索了几个小时,我没有找到解决方案。

4

2 回答 2

1

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

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

于 2013-09-02T14:42:21.500 回答
1

WriteFile不对您的数据进行任何转换或其他更改。如果你传递它 aLPWSTR那么它将以它存储的字节顺序写入LPWSTR- 在任何运行 Windows 的机器上可能是“小端”(至少,我一直在查看 Windows“Unicode”字符串,它是 16 位的 Little Endian 数据)。

于 2013-09-02T14:42:26.200 回答