Meldを使用して、2つのファイル間の差分を視覚化しています。 meldはdiff出力を表示します...日本語や中国語のようなものですか?
何が起こる可能性がありますか?ロケールの問題?奇妙なのは、ターミナルでdiff
またはcolordiff
を使用すると、完全に機能することです!
ありがとう!
ここで同じ問題:ファイルのエンコードが正しく検出されません。
私の場合、これはmeldの「detect-encodings」設定によるものです。
確認する:
$ gsettings get org.gnome.meld detect-encodings
['utf8']
Utf8のみが検出されます。
この問題を回避するには、'latin1'
またはファイルのエンコードを追加します。
$ gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"
最後の答えの短い拡張子:
[]部分に引用符を追加する必要がありました。
gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"
ubuntu 16.04のターミナルで実行する
これはエンコードの問題だと確信しています。端末はおそらく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