答案1
这里存在同样的问题:文件编码未正确检测。
就我而言,这是由于 meld 的“检测编码”设置造成的。
检查:
$ gsettings get org.gnome.meld detect-encodings
['utf8']
仅检测到 utf8。
要解决此问题,请添加'latin1'
或修改文件所具有的任何编码:
$ gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"
答案2
上一个答案的简短扩展:
我必须在 [] 部分添加引号:
gsettings set org.gnome.meld detect-encodings "['utf8','latin1']"
在 Ubuntu 16.04 的终端中执行它
答案3
我非常确定这是一个编码问题。您的终端可能是 UTF-8 格式,文件是 ISO。这是早在 16.04 中就出现的新问题,我认为 15.04 中也可能出现这种情况,但我可以确认 12.04 中不会出现这种情况。
尝试通过输入“locale”来检查运行 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