C++ читает причины и решения для искажения китайских иероглифов в текстовых файлах
В этой статье представлены причины и решения для искаженных китайских иероглифов в текстовом файле, читаемом C++ в операционной системе Windows с упрощенным китайским языком.
Описание проблемы, C++ читает искаженные китайские символы в текстовом файле, следующий код может прочитать содержимое в d:/data.txt и вывести:
//C++将文本文件按行读入
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
int main()
{
ifstream file;
file.open("d:/data.txt", ios::in);
string s;
while(getline(file,s))
{
cout<<s<<endl;
}
file.close();
return 0;
}
Скомпилируйте и запустите, если файл data.txt содержит искаженные символы на китайском языке, см. рисунок ниже:
По какой причине?
Чтобы просмотреть текущий метод кодирования cmd, нажмите комбинацию клавиш win + R, откройте окно запуска и введите cmd, чтобы открыть, затем щелкните правой кнопкой мыши строку заголовка cmd → свойства и щелкните, чтобы просмотреть текущий метод кодирования:
Обратите внимание на раздел «Текущая кодовая страница», текущая кодировка — «ANSI».
Используйте блокнот, чтобы открыть текстовый файл, обратите внимание на формат «кодировки» файла.
Формат кодирования текстового файла по умолчанию, такой как формат UTF-8, несовместим с форматом кодирования cmd «ANSI», просто измените формат кодирования текстового файла на формат «ANSI», см. рисунок ниже:
Запустите его снова, вывод больше не искажен.
Подводя итог, можно сказать, что причиной искаженных символов в файле чтения С++ является то, что формат кодирования текстового файла несовместим с методом кодирования cmd.Измените формат кодирования текстового файла и формат кодирования текстового файла. соответствует методу кодирования cmd.