从文件中读取特殊字符

时间:2014-12-08 19:05:08

标签: c++ character-encoding utf

有几天我试图解决我的C ++代码中的ecoding问题。 我有一个txt文件的以下内容(保存utf-8):“québécois”。 (我只读取了文件的权限)。 我正在std :: string变量中使用ReadFile函数读取它。

  1. 第一个惊喜是strContnet不是“québé©cois”,而是“québécois”。 (双重编码??) 为什么呢?

  2. 为了获得“québécois”(utf8到ansi?)

  3. 我在std :: string变量中读取它的内容有多棒

    到目前为止,我有两种方法可以接近我想要的东西,但没有一种方法可以让我满意。 1.转换自:  std :: string到std :: wstring(使用MultiByteToWideChar)  从wstring创建一个CString  使用CT2CA获取新的std :: string  最后使用agin MultiByteToWideChar作为最终的std :: wstring containsint“québécois”

    我觉得这个方法不安全而且不聪明,而且我的字符串不是字符串。

    1. 我找到了这篇文章: How to convert from UTF-8 to ANSI using standard c++ 如果我两次使用utf8_to_string函数我得到了我想要的东西,但我仍然不确定它是否是正确的方式。
    2. 有人可以帮我解决这个问题吗?

0 个答案:

没有答案