我从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放入文件中,但该行在日语部分结束(\“ecoモードをオンにしました。\”)。
如果我设置wfout.imbue("chs");,则该行在捷克语部分结束(\“Režimeco jezapnutý。\”)。

如何将此行正确写入文件?

最佳答案

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

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

这会将应用程序的本地设置为计算机支持的内容(对于宽字符串,可能是UTF-32)。不幸的是,对于程序员来说,默认本地是“C”,而“C”本地的codecvt方面没有任何用处(可能将宽宪章截断为单个字节而不进行转换)。

09-11 22:03