每当我在文本文件中使用除拉丁语之外的字符集(混合西里尔语和拉丁语,比方说)时,我通常会选择utf-16进行编码。这样我就可以使用emacs或TextEdit在OS X下编辑文件。
然后emacs中的ediff停止工作。它只说“二进制文件这个和那个不同”。
ediff可以以某种方式处理包含外来字符的文本文件吗?
答案 0 :(得分:5)
自定义变量ediff-diff-options
并添加选项--text
。
(setq ediff-diff-options "--text")
Ediff调用外部程序GNU实用程序diff
来计算差异;但是,diff
不了解unicode,并将unicode编码的文件视为二进制文件。选项“--text”只是强制它将输入文件视为文本文件。请参阅GNU Diffutils手册:Comparing and Merging Files;特别是1.7 Binary Files and Forcing Text Comparisons。
答案 1 :(得分:0)
我强烈建议您使用utf-8而不是utf-16。 utf-8是大多数Unix世界中的标准编码,包括Mac OS X,它不会遇到这些问题。