C ++无法从文件中读取UTF-8西里尔文本

时间:2017-02-08 11:53:14

标签: c++ visual-studio-2015 utf-8 cyrillic cfile

该文件采用UTF-8(65001)编码。我无法从中读出西里尔符号。

CString FNAME;
CStdiofile fNFR;

fNFR.Open(_T("LFS200.25"), CFile::modeRead);
fNFR.ReadString(FNAME);

得到了这个:

 Зимний максимум 1989/90 гг.

而不是:

 Зимний максимум 1989/90 гг.

尝试

setlocale(LC_ALL, "Rus");

仍然是同样的问题。

如何获得正确的字符串?

1 个答案:

答案 0 :(得分:0)

我在这里找到答案(需要将utf-8转换为utf-16):

CONVERSION BETWEEN UNICODE UTF-16 AND UTF-8 IN C++/WIN32