c++ - 如何将包含不同语言的 wstring 行写入文件?

标签 c++ c string character-encoding wofstream

我从 22 个不同语言的文件中分离出不同的部分,并使它们成为一个 wstring 行,如下所示:

wstring wstr_line = L"\"IDS_TOAST_ECOON\",\"eco Mode is turned On.\",\"ecoモードをオンにしました。\",\"Režim eco je zapnutý.\",\"Økoindstillingen er aktiveret\"..."

我用wofstream把wstr_line放到一个文件里,但是这行在日文部分结束了(\"ecomoードをオンニしました。\")。 如果我设置 wfout.imbue("chs"); 该行在捷克语部分结束(\"Režim eco je zapnutý.\")

如何将这一行正确写入文件?

最佳答案

尝试将其作为代码中的第一行:

int main()
{
    std::cout.imbue(std::locale(""));

这会将应用程序的本地设置为机器支持的内容(对于宽字符串可能是 UTF-32)。不幸的是,程序员的默认本地是“C”,“C”本地的 codecvt facet 没有做任何有用的事情(可能会在不转换的情况下将宽字符截断为单个字节)。

关于c++ - 如何将包含不同语言的 wstring 行写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11715441/

相关文章:

C++在字符串中查找重复的子字符串

c++ - 将矩阵应用于图像,寻求性能改进

c++ - C 的 C++ 文件中的正确前向定义包括

c++ - 检测 TreeView 父窗口中的焦点变化

c++ - 解析一个字符串得到第n个字段

ios - 不需要的信息显示在 NSString 的文本标签中

c - 调用函数有问题?

c++ - C 和 C++ 使用 goto 时汇编代码中的 jmp 指令差异

c - memcpy() 与 memmove()

java - 按 {} 和 [] 拆分字符串