C++ читает причины и решения для искажения китайских иероглифов в текстовых файлах

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.

Supongo que te gusta

Origin blog.csdn.net/cnds123/article/details/131062643
Recomendado
Clasificación