UTF-8 字符未正确加载

UTF-8 characters not loading in properly

提问人:gniewko milczarski 提问时间:10/18/2023 最后编辑:Remy Lebeaugniewko milczarski 更新时间:10/31/2023 访问量:91

问:

我有一个学校项目,要求我加载一个包含 UTF-8 字符的文本文件,例如 ,然后对该文本进行一些编辑。"ł,ą,ż,ź,ć,..."

问题是,如果我使用 ,它会正确加载文件,但是如果我尝试使用 、 等,则字符会消失。SetConsoleOutputCP(65001)cinłą

#include <iostream>
#include <fstream>
#include <string>
#include<windows.h>
using namespace std;

string opfile(string name){
    string line;
    ifstream myfile (name);
    string tekst;
    if (myfile.is_open())
    {
        while(getline(myfile, line)) {
            tekst += line + "\n";
        }
        myfile.close();
    }

    else cout << "Unable to open file";
    return tekst;
};

int main() {
    SetConsoleOutputCP(65001);
    string file_name;
    cin >> file_name;
    cout << opfile(file_name);
    string cos;
    cin >> cos;
    cout << cos;
    return 0;
}

这是文本文件中的内容

ŁŁŁŁŁŁŁŁĄĄĄĄĄĄĄĄĄĄĄÓÓÓÓĆÓŹŻÓŹĆŹŻÓĆŻÓźćÓÓÓĆŹÓŻĆŻÓŹĆÓŚĄŚĄÓÓĄŚÓŚĄÓÓŚÓŚĄ

如果我稍后尝试输入它,则不会输出任何内容。

我试着环顾四周,但每个人都说应该可以。SetConsoleOutputCP()

C++ UTF-8 Windows 控制台

评论

0赞 gniewko milczarski 10/18/2023
克里昂,C++ 17,赢10,其余的我不纠结
0赞 Eljay 10/18/2023
我不熟悉 Clion 编译器。它是否具有像 Microsoft Visual Studio 编译器那样的 /utf-8 设置?
0赞 Marek R 10/18/2023
好的 Windows,但是哪个编译器?MSVC,MinGW,叮当?
1赞 Marek R 10/18/2023
没有像字符这样的东西。 只是 Unicode 字符的编码。在带有波兰语区域设置控制台的 Windows 上,默认情况下使用代码页 1252,这是一个涵盖波兰语字符(中欧)的再见编码。您的文件/输入是真的还是 Windows-1252?UTF-8UTF-8Utf-8
1赞 n. m. could be an AI 10/18/2023
Windows 不能很好地与 UTF-8 配合使用,尽管所有声称它“开箱即用”的支持。事实并非如此。

答: 暂无答案