meld mostra a saída no alfabeto ilegível (japonês / chinês?)

11

Estou usando o meld para visualizar uma diferença entre dois arquivos. o meld mostra a saída do diff em ... algo como japonês ou chinês?

Alguma idéia do que poderia acontecer? Um problema local? O que é estranho é que ao usar diff ou colordiff no terminal, eles funcionam perfeitamente!

Obrigado!

    
por Matifou 20.10.2016 / 19:59

3 respostas

13

O mesmo problema aqui: a codificação de arquivo não é detectada corretamente.

No meu caso, isso se deve às configurações "detect-encodings" do meld.

Verifique com:

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

Somente o utf8 é detectado.

Para solucionar esse problema, adicione 'latin1' ou qualquer codificação que seu arquivo tenha:

$ gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"
    
por Inaki Saez 30.01.2017 / 13:21
1

Extensão curta para a última resposta:

Eu tive que adicionar aspas à parte []:

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

executando-o em um terminal no Ubuntu 16.04

    
por DrUweDamm 25.02.2017 / 21:56
0

Tenho certeza de que esse é um problema de codificação. Seu terminal provavelmente está em UTF-8 e o arquivo é ISO. Este é um novo problema já em 16.04, eu acho que pode acontecer em 15.04 também, mas posso confirmar que isso não acontece em 12.04.

Tente verificar seu terminal onde você está executando o comando "locale". e você deve ter algo assim:

$ 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=

Em seguida, digite "arquivo" para cada um dos seus arquivos e verifique se eles correspondem ao seu terminal.

Em uma nota lateral, tenho tido vários problemas de codificação entre UTF-8 e ISO que realmente nunca deveriam acontecer em 16.04.

O que funcionou para mim foi executar o iconv em cada arquivo:

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
    
por badner 12.01.2017 / 17:22

Tags