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):

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