C++ 无法从文件中读取 UTF-8 西里尔文本
C++ Can't read UTF-8 cyrillic text from file
文件采用 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");
还是一样的问题。
如何获取正确的字符串?
我在这里找到了答案(需要将 utf-8 转换为 utf-16):
文件采用 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");
还是一样的问题。
如何获取正确的字符串?
我在这里找到了答案(需要将 utf-8 转换为 utf-16):