【发布时间】:2012-11-03 16:23:13
【问题描述】:
我在用 C++ 将法语字符写入控制台时遇到问题。该字符串使用std::ifstream 和std::getline 从文件加载,然后使用std::cout 打印到控制台。这是文件中的字符串:
La chaîne qui 对应 au 代码 "TEST_CODE" n'a pas été trouvée à l'aide locale "fr"。
这是字符串的打印方式:
La cha¯ne qui 对应 au 代码 "TEST_CODE" n'a pas ÚtÚ trouvÚe Ó l'aide locale "fr"。
我该如何解决这个问题?
【问题讨论】:
-
我假设您使用的是 Windows?
-
是的,我会修改我的问题以指定。
-
@Boreal:确保将存储在文件中的字符串转换为 Unicode UTF-16(这对于在 Windows 应用程序中使用的 Unicode 编码是有意义的)。您可以从文件中读取字符串,然后使用
MultiByteToWideChar()API(或ATL 转换助手CA2W)将您的特定编码转换为UTF-16。然后,要将 Unicode 字符串打印到控制台,只需使用_setmode(_fileno(stdout), _O_U16TEXT);初始化控制台,然后可以使用wprintf()或std::wcout。有关更多详细信息和链接,请参阅我的答案。
标签: c++ windows unicode console latin