テキストファイルでラテン語に加えて文字セットを使用する場合(たとえば、キリル文字とラテン語を混合する場合)、通常、エンコードにはutf-16を選択します。このようにして、OSXでemacsまたはTextEditを使用してファイルを編集できます。
しかし、その後、emacsのediffは機能しなくなります。「バイナリファイルはこれとそれが違う」とだけ書かれています。
どういうわけか、外国文字を含むテキストファイルでediffを機能させることができますか?
変数をカスタマイズしediff-diff-options
、オプションを追加します--text
。
(setq ediff-diff-options "--text")
diff
Ediffは、違いを計算するために外部プログラムであるGNUユーティリティを呼び出します。ただし、diff
Unicodeを理解せず、Unicodeでエンコードされたファイルをバイナリファイルと見なします。オプション「--text」は、入力ファイルをテキストファイルとして扱うように強制するだけです。GNU Diffutils:ファイルの比較とマージのマニュアルを参照してください。特に1.7バイナリファイルと強制テキスト比較。
utf-16の代わりにutf-8を使用することを強くお勧めします。utf-8は、Mac OS Xを含むほとんどのUnixの世界で標準のエンコーディングであり、これらの問題の影響を受けません。