ファイルを読み込んだら文字化けが発生しますが、どうやって解決しますか?

Qtでファイルを読み込んだ際に文字化けが発生する場合は、文字コードが一致していない可能性が考えられます。以下の方法で解決を試みてください。

  1. QTextCodecを利用して、適切な文字コードを設定する。
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); // 根据文件的实际编码格式进行设置
QTextCodec::setCodecForLocale(codec);
  1. エンコーディングを適切に指定して、QFileとQTextStreamでファイルを読み取ります。
QFile file("filename.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
    QTextStream in(&file);
    in.setCodec("UTF-8"); // 根据文件的实际编码格式进行设置
    QString content = in.readAll();
    file.close();
    // 对content进行处理
}
  1. ファイルのエンコード形式が ANSI の場合は、QTextStream の readLine() メソッドに適切なエンコード形式を指定して、ファイルを逐次行単位で読み込めます。
QFile file("filename.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
    QTextStream in(&file);
    in.setCodec("GBK"); // 根据文件的实际编码格式进行设置
    while (!in.atEnd()) {
        QString line = in.readLine();
        // 对line进行处理
    }
    file.close();
}

適宜な方法を選択して実行してください。

bannerAds