有几天我试图解决我的C ++代码中的ecoding问题。 我有一个txt文件的以下内容(保存utf-8):“québécois”。 (我只读取了文件的权限)。 我正在std :: string变量中使用ReadFile函数读取它。
第一个惊喜是strContnet不是“québé©cois”,而是“québécois”。 (双重编码??) 为什么呢?
为了获得“québécois”(utf8到ansi?)
到目前为止,我有两种方法可以接近我想要的东西,但没有一种方法可以让我满意。 1.转换自: std :: string到std :: wstring(使用MultiByteToWideChar) 从wstring创建一个CString 使用CT2CA获取新的std :: string 最后使用agin MultiByteToWideChar作为最终的std :: wstring containsint“québécois”
我觉得这个方法不安全而且不聪明,而且我的字符串不是字符串。
有人可以帮我解决这个问题吗?