lpwstr 字符串的默认字节顺序是什么?
我正在使用 WriteFile() 函数将数据写入 c++ 中的文件。我猜它会将数据写入 utf-16BE。我需要将数据写入 utf-16le。我该如何实现?
谷歌搜索了几个小时,我没有找到解决方案。
lpwstr 字符串的默认字节顺序是什么?
我正在使用 WriteFile() 函数将数据写入 c++ 中的文件。我猜它会将数据写入 utf-16BE。我需要将数据写入 utf-16le。我该如何实现?
谷歌搜索了几个小时,我没有找到解决方案。
如果您使用的是LPWSTR,我会说您在 Windows(及其变体)下,所以可能在 Intel/AMD 机器上,所以它已经是 Little Endian。LPWSTR
使用处理器的字节顺序。Windows 从未被移植到 Big Endian(至少据我所知)
请注意,至少有一个例外:XBOX 360 是 Big Endian。
WriteFile
不对您的数据进行任何转换或其他更改。如果你传递它 aLPWSTR
那么它将以它存储的字节顺序写入LPWSTR
- 在任何运行 Windows 的机器上可能是“小端”(至少,我一直在查看 Windows“Unicode”字符串,它是 16 位的 Little Endian 数据)。