2010年12月8日水曜日

Abiword copy/paste

AbiwordのBugzillaを検索していたら興味深い報告を発見しました。コピー&ペーストが中国語で文字化けすると言うものです。中国語に関してはすでにパッチが当てられて改善されているみたいです。どうも日本語と同じ状況にあったのでしょう。

Corruption of multilingual documents exported as RTF under a CJK locale.
Bug#8514
http://bugzilla.abisource.com/show_bug.cgi?id=8514

Corruption of Chinese text on copy/paste under CJK locale
Bug#8500
http://bugzilla.abisource.com/show_bug.cgi?id=8500

少し古いabiword-2.6.8のソースコードを見ると、中国語に関してはこれらの修正はされているが、日本語、ハングルに関しては修正されていない様です。そこで日本語に関する記述を追加してコンパイルしてみました。

abiword-2.6.8/src/af/xap/xp/xap_EncordingManager.cppを修正した。





結果、コピー&ペーストが文字化けしなくなりました。RTFの保存もうまく出来ます。作成したRTFをエディタで開くとcp932になっています。このファイルをWindowsXPのワードパッドで開いてみましたが文字化けしません。おそらくMS Wordでも文字化けしない筈です。



今、日本語PuppyLinuxのAbiwordはLocaleを変更するスクリプトで起動させているが(abiword.sh)、これは捨てて、こちらの方法に変更した方が良いでしょう。もっとも、Localeを変更して起動したら良いと書いたのは私ですが。

これはテストです。実際にやってみる時はエンコードなども適当なので、もう少し詳しく突き詰めて修正下さい。

参考ページ:

サポートするコード ページ
http://msdn.microsoft.com/ja-jp/library/aa288104%28VS.71%29.aspx

ロケール ID (LCID) の一覧
http://msdn.microsoft.com/ja-jp/library/cc392381.aspx

Java / Supported Encodings
http://download.oracle.com/javase/1.3/docs/guide/intl/encoding.doc.html

文字セット名、文字セット値、およびコード ページ番号のテーブルな情報
http://support.microsoft.com/kb/165478/ja

Encodings for localization files
https://developer.mozilla.org/ja/Encodings_for_localization_files

テストしたコンパイル手順:
# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=i486
#make
#new2dir make install
#dir2pet

PuppyLinux4.3.1JP---wv1.2.4及びwv_DEV_1.2.4などを追加済み。