程序字面量可以根据需要用 u8 前缀或者 L 前缀,用资源存储串一般是选 wchar_t,配置文件主要看 io 时编码转换(有些工具库可以帮助),文件 io 显式指定编码,控制台用 wchar_t 保险,gui 看框架一般是 wchar_t 或者某个 utf。
一般大原则是内码避免用非 unicode 编码,具体选 utf-8、utf-16 还是 utf-32 各有利弊。然后 IO 的编码转换就用编码转换的 api(windows 就是前面 z16166 提到的 WideCharToMultiByte,MultiByteToWideChar),别用 locale 搞这个。
【 在 speedboy2998 的大作中提到: 】
: 做转换之前需要调用 setlocale 设置 locale, 我的问题是,对于不同的语言的ANSI字符串,有没有一种万能locale设置可以把他们统统转成UTF8,以及再从UTF8转换成ansi字符串?
: --
: FROM 113.246.192.*
--
修改:milksea FROM 114.249.193.*
FROM 114.249.193.*