gedit странное кодирование стандартного текстового файла

Этот вопрос wa также отправленный в этом ТАК отправляет.

У меня есть стандартный текстовый файл, который показывают прекрасный с кошкой:

$ cat myfile.txt
v0[shape = Mrecord, label = ""]

Когда я использую xxd для исследования точного окончания строки, я получаю это:

$ xxd myfile.txt
00000000: 7630 5b73 6861 7065 203d 204d 7265 636f  v0[shape = Mreco
00000010: 7264 2c20 6c61 6265 6c20 3d20 2222 5d0a  rd, label = ""].

Однако, когда я пытаюсь открыть его с gedit, я получаю странное кодирование некоторых не латинский язык. Что идет не так, как надо в gedit? Вот полный исходный код для репродуцирования:

$ cat main.cpp
#include <fstream>
int main(int argc, char **argv)
{
    std::ofstream myfile("myfile.txt");
    myfile << "v0[shape = Mrecord, label = \"\"]\n";
    myfile.close();
    return 0;
}

И вот моя строка компиляции:

g++ main.cpp -o main

Кроме того, я присоединяю файл изображения экран gedit:

enter image description here

Править: (вывод от предложенных комментариев)

$ gedit --list-encodings | grep -Fx UTF-8
UTF-8
$ gedit --encoding UTF-8 myfile.txt
$ file -bi myfile.txt
text/plain; charset=us-ascii
2
задан 6 August 2018 в 18:54

1 ответ

Можно вызвать кодирование к UTF-8 при запуске gedit, например,

\gedit --encoding UTF-8 myfile.txt

Где-нибудь Вам установили кодировку по умолчанию на UTF-16LE, как обозначено @filipe-brandenburger. Можно проверить это при помощи UTF-16LE, кодирующего для наблюдения странного вывода.

\gedit --encoding UTF-16LE myfile.txt

Обновление - кодирование может быть снабжено uri файла.

Редактор Gnome, по-видимому, кэшировал тип кодировки наряду с uri файла. Вы видите это мое перемещение файла вокруг. Например,

echo "Hello there." > testfile.txt
\gedit --encoding UTF-16LE testfile.txt

(см. китайский текст),

mkdir tempdir
mv testfile.txt tempdir
cd tempdir
\gedit --encoding UTF-8 testfile.txt

(Английский текст)

Теперь открытый, не указывая кодирование.

\gedit testfile.txt

(Английский текст)

Но перемещение файла назад заставляет это использовать другое кодирование.

mv testfile.txt ..
cd ..
\gedit testfile.txt

(см. китайский текст),

3
ответ дан 2 December 2019 в 02:42

Другие вопросы по тегам:

Похожие вопросы: