Meldung zeigt Ausgabe in unlesbarem Alphabet (Japanisch / Chinesisch?)


15

Ich benutze meld, um einen Unterschied zwischen zwei Dateien zu visualisieren. meld zeigt die diff-Ausgabe in ... so etwas wie Japanisch oder Chinesisch?

Irgendeine Idee, was passieren könnte? Ein lokales Problem? Merkwürdig ist, dass sie bei der Verwendung diffoder colordiffim Terminal perfekt funktionieren!

Vielen Dank!

Meld zeigt nicht lesbare Ausgabe an


Ich habe das auch gerade mit einer Gitternachricht bekommen. Seltsamerweise ist nur eine der Dateien LOCAL / BASE / REMOTE betroffen.
Ziv

Nicht vertraut mit meld, aber ich würde vorschlagen, es über die LC_ALL=C meldBefehlszeile auszuführen und zu prüfen, ob das Problem weiterhin besteht.
Sergiy Kolodyazhnyy

Mein Fall war eigentlich die Windows-1252-Codierung und gelöst wie hier -> stackoverflow.com/questions/38919384/…
eri0o

Antworten:


18

Gleiches Problem hier: Die Dateicodierung wird nicht richtig erkannt.

In meinem Fall liegt dies an den Einstellungen für "Erkennungscodierungen" von meld.

Erkundigen Sie sich bei:

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

Nur utf8 wird erkannt.

Um dieses Problem zu umgehen, fügen Sie Folgendes hinzu 'latin1'oder geben Sie an, welche Codierung Ihre Datei hat:

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

2

Kurze Erweiterung bis zur letzten Antwort:

Ich musste dem Teil [] Anführungszeichen hinzufügen:

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

Ausführen in einem Terminal in Ubuntu 16.04


3
Es ist besser, eine Änderung für den Beitrag vorzuschlagen, als eine Antwort für eine kleine Korrektur zu geben :)
Zanna

1
er kann nicht kommentieren, zu wenig Punkte, oder? :(
Aquarius Power

1

Ich bin mir ziemlich sicher, dass dies ein Codierungsproblem ist. Ihr Terminal ist wahrscheinlich in UTF-8 und die Datei ist ISO. Dies ist ein neues Problem bereits am 16.04. Ich denke, es kann auch am 15.04. Auftreten, aber ich kann bestätigen, dass dies nicht am 12.04.

Versuchen Sie, Ihr Terminal zu überprüfen, auf dem Sie meld ausführen, indem Sie "locale" eingeben. und du solltest so etwas bekommen:

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

Geben Sie dann für jede Ihrer Dateien "file" ein und vergewissern Sie sich, dass sie mit Ihrem Terminal übereinstimmen.

Nebenbei bemerkt hatte ich eine Reihe von Codierungsproblemen zwischen UTF-8 und ISO, die in 16.04 eigentlich nie auftreten sollten.

Was bei mir funktioniert hat, war, iconv für jede Datei auszuführen:

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

1
Danke für Ihre Hilfe! Der fileBefehl ist nicht sehr informativ. (sagt nur ASCII). Ich habe versucht, fromdoszu konvertieren, aber immer noch die gleiche Ausgabe ... Soll ich einen anderen Befehl versuchen? Vielen Dank!
Matifou

Ich habe iconv für jede Datei verwendet, um von ISO nach utf-8 zu konvertieren, und alles hat magisch funktioniert. Seltsam, weil es keine Zeichen gibt, die einen Unterschied zwischen den beiden machen sollten.
Badner

Ich werde den Befehl zu meiner Antwort hinzufügen
badner
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.