Emacs ediff,外来字符集和文本文件编码

时间:2012-05-08 18:00:51

标签: emacs encoding

每当我在文本文件中使用除拉丁语之外的字符集(混合西里尔语和拉丁语,比方说)时,我通常会选择utf-16进行编码。这样我就可以使用emacs或TextEdit在OS X下编辑文件。

然后emacs中的ediff停止工作。它只说“二进制文件这个和那个不同”。

ediff可以以某种方式处理包含外来字符的文本文件吗?

2 个答案:

答案 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,它不会遇到这些问题。