从文件中读取特殊字符 几天来,我试图解决C++代码中的一个问题。 我有一个utf-8保存的txt文件的以下内容:québécois。我只对这个文件有阅读权。 我正在用std::string变量中的ReadFile函数读取它

从文件中读取特殊字符 几天来,我试图解决C++代码中的一个问题。 我有一个utf-8保存的txt文件的以下内容:québécois。我只对这个文件有阅读权。 我正在用std::string变量中的ReadFile函数读取它,c++,character-encoding,utf,C++,Character Encoding,Utf,第一个令人惊讶的是,strcontent不是quÃbécois,而是quÃbécois。双重编码?? 为什么? 如何读取std::string变量中的内容以获得québécois utf8到ansi 到目前为止,我有两种方法可以得到我想要的东西,但都不能让我满意。 1.转换自: 使用MultiByteToWideChar将std::string转换为std::wstring 从wstring创建CString 使用CT2CA获取新的std::字符串 最后,将agin MultiByteToW

第一个令人惊讶的是,strcontent不是quÃbécois,而是quÃbécois。双重编码?? 为什么?

如何读取std::string变量中的内容以获得québécois utf8到ansi

到目前为止,我有两种方法可以得到我想要的东西,但都不能让我满意。 1.转换自: 使用MultiByteToWideChar将std::string转换为std::wstring 从wstring创建CString 使用CT2CA获取新的std::字符串 最后,将agin MultiByteToWideChar用于包含québécois的最终std::wstring

我认为这个方法是不安全的,不是很聪明,而且我有一个wstring而不是string

我发现这篇文章: 如果我两次使用utf8_to_字符串函数,我会得到我想要的,但我仍然不确定这是否是wright方法。
有人能帮我解决这个问题吗?

它显示为双重编码,因为您不使用utf-8读取它。我如何使用utf8读取它?类似于