次: , 上: Shortcomings


18.1.1 マルチバイトと可変幅文字の処理

diffdiff3,そしてsdiffは,入力のそれぞれ の行を単一バイトの文字による文字列として扱います.これにより,状況によっ てはマルチバイト文字を誤って処理するはずです.例えば,スペースを無視する ように依頼されているとき,diffはマルチバイトのスペース文字を適 切に無視してくれません.

また,diffは現在,それぞれのバイトが一列の幅だと仮定していて, 例えば,UTF-8エンコーディングを使用しているロケールのように,この仮定が 正しくないロケールもあります.これは,diff-y--side-by-sideオプションで問題が生じます.

これらの問題は,単一バイト環境でのユーティリティの性能にあまり影響しない ように修正する必要があります.

IBM GNU/Linux Technology Center Internationalization Teamは, diffの国際化をサポートするパッチ http://oss.software.ibm.com/developer/opensource/linux/patches/i18n/diffutils-2.7.2-i18n-0.1.patch.gz を提案しています.残念ながら,これらのパッチは不完全で,diffの 古いバージョンへのものなので,この領域でより多くの作業が必要です.