web-dev-qa-db-ja.com

meldは出力を読めないアルファベットで表示します(日本語/中国語?)

Meldを使用して、2つのファイル間の差分を視覚化しています。 meldはdiff出力を表示します...日本語や中国語のようなものですか?

何が起こる可能性がありますか?ロケールの問題?奇妙なのは、ターミナルでdiffまたはcolordiffを使用すると、完全に機能することです!

ありがとう!

Meld shows unreadable output

14
Matifou

ここで同じ問題:ファイルのエンコードが正しく検出されません。

私の場合、これはmeldの「detect-encodings」設定によるものです。

確認する:

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

Utf8のみが検出されます。

この問題を回避するには、'latin1'またはファイルのエンコードを追加します。

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

最後の答えの短い拡張子:

[]部分に引用符を追加する必要がありました。

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

ubuntu 16.04のターミナルで実行する

2
DrUweDamm

これはエンコードの問題だと確信しています。端末はおそらくUTF-8であり、ファイルはISOです。これは、16.04の新しい問題であり、15.04でも発生する可能性があると思いますが、12.04では発生しないことを確認できます。

「ロケール」と入力して、meldを実行している端末を確認してください。そして、あなたはこのような何かを手に入れるべきです:

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

次に、各ファイルに「file」と入力し、端末と一致することを確認します。

余談ですが、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
0
badner