meld показывает вывод в нечитаемом алфавите (японский / китайский?)

8

Я использую meld для визуализации разницы между двумя файлами. meld показывает выход diff в ... что-то вроде японского или китайского?

Любая идея, что может случиться? Проблема локали? Странно, что при использовании diff или colordiff в терминале они отлично работают!

Спасибо!

    

задан Matifou 20.10.2016 в 17:59
источник

3 ответа

7

Такая же проблема: кодировка файлов не обнаружена.

В моем случае это происходит из-за настроек «обнаружения-кодирования» meld.

Обратите внимание:

$ gsettings get org.gnome.meld detect-encodings
['utf8']

Обнаружен только utf8.

Чтобы обойти эту проблему, добавьте 'latin1' или какую-либо кодировку вашего файла:

$ gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"
    
ответ дан Inaki Saez 30.01.2017 в 12:21
0

Я уверен, что это проблема с кодировкой. Возможно, ваш терминал находится в UTF-8, а файл - ISO. Это новая проблема уже в 16.04, я думаю, что это может произойти и в 15.04, но я могу подтвердить, что это не в 12.04.

Попробуйте проверить свой терминал, на котором вы работаете, путем ввода «locale». и вы должны получить что-то вроде этого:

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Затем введите «файл» для каждого из ваших файлов и убедитесь, что они соответствуют вашему терминалу.

На стороне примечания у меня было множество проблем с кодировкой между UTF-8 и ISO, которые никогда не должны происходить в 16.04.

Что сработало для меня, было запущено iconv для каждого файла:

iconv -f ISO-8859-15 -t UTF-8 file_1.txt >file_1.tmp;
iconv -f ISO-8859-15 -t UTF-8 file_2.txt >file2.tmp;
mv file_1.tmp file_1.txt;
mv file_2.tmp file_2.txt;
meld file_1 file_2
    
ответ дан badner 12.01.2017 в 16:22
0

Короткое расширение до последнего ответа:

Мне пришлось добавить кавычки в часть []:

gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"

выполняется в терминале в Ubuntu 16.04

    
ответ дан DrUweDamm 25.02.2017 в 20:56