当使用 fstream 将这些符号打印到文件时,我得到了一个困惑的结果。 使用:
file << "Δ" << endl;
这在 Linux 中工作正常,但是当我为 Windows 编译它时它不工作。
是否有特定的方法可以在 Windows 中进行此操作?
最佳答案
以下应该适用于 MSVC2010。使用 std::codecvt_utf8_utf16将宽字符转换为 UTF-8 字节流:
#include <fstream>
#include <codecvt>
int main()
{
std::wofstream file("myfile", std::ios::out | std::ios::binary);
file.imbue(std::locale(file.getloc(), new std::codecvt_utf8_utf16<wchar_t>));
file << L"Δ" << std::endl;
}
关于c++ fstream不打印像ρ和Δ这样的符号来正确归档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078198/