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