Я пишу программу на С ++ в системе Debian. Как система выбирает метод декодирования при открытии текстового файла? например:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
Приведенный выше код читает текстовый файл и распечатывает его. Должно быть, он выбрал метод декодирования для этого файла "example.txt". Во многих системах (например, fedora) метод декодирования по умолчанию - utf8. Что произойдет, если не удастся расшифровать utf8? И я обнаружил, что vim в моей системе fedora выберет «Latin-1» для этого файла после неудачного декодирования «utf8».