ファイルを読み込んだら文字化けが発生しますが、どうやって解決しますか?
Qtでファイルを読み込んだ際に文字化けが発生する場合は、文字コードが一致していない可能性が考えられます。以下の方法で解決を試みてください。
- QTextCodecを利用して、適切な文字コードを設定する。
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); // 根据文件的实际编码格式进行设置
QTextCodec::setCodecForLocale(codec);
- エンコーディングを適切に指定して、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进行处理
}
- ファイルのエンコード形式が 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();
}
適宜な方法を選択して実行してください。