相关疑难解决方法(0)

将utf16写入二进制模式的文件

我试图用二进制模式的ofstream写一个wstring文件,但我觉得我做错了.这就是我尝试过的:

ofstream outFile("test.txt", std::ios::out | std::ios::binary);
wstring hello = L"hello";
outFile.write((char *) hello.c_str(), hello.length() * sizeof(wchar_t));
outFile.close();
Run Code Online (Sandbox Code Playgroud)

在例如Firefox中打开test.txt,编码设置为UTF16,它将显示为:

你好

谁能告诉我为什么会这样?

编辑:

在十六进制编辑器中打开文件我得到:

FF FE 68 00 00 00 65 00 00 00 6C 00 00 00 6C 00 00 00 6F 00 00 00 
Run Code Online (Sandbox Code Playgroud)

看起来我出于某种原因在每个角色之间得到两个额外的字节?

c++ unicode utf-16

11
推荐指数
3
解决办法
8973
查看次数

标签 统计

c++ ×1

unicode ×1

utf-16 ×1