Hatena::ブログ(Diary)

GANAwareはてな版 RSSフィード

2010-09-27

CP932 → UNICODE → CP932 : PHP 5.3.3 も調べてみた

php も調べてみた - GANAwareはてな版」で PHP 5.3.0 について調査しましたが、その後 PHP 5.3.3 で変更がありました。

U+00A5 と U+203E の変換先が Win32 のものと一致するようになりました。

# http://www.php.net/ChangeLog-5.php#5.3.3 で言及されていないのがやや気になります。

2010-03-25

cygwin 1.7.2 と LANG=ja_JP.CP932

cygwin 1.7.1 で ja_JP.CP932 を使用可能にするパッチ - GANAwareはてな版 が反映された Cygwin 1.7.2 がリリースされました。

CP932 がサポートされたので、

  • LANG=ja_JP.CP932 に設定可能です。
  • LANG=ja_JP.SJIS に設定した時でも、nl_langinfo(CODESET) は "CP932" を返します。

2010-02-17

php も調べてみた

id:hnw に協力してもらって php の場合も調査してみました。

U+00A5 と U+203E の変換先が Windows と異なります。おしい。

2010-02-14

APR-iconv Unicode ⇔ CP932 Patch

作ったのでバグ報告しました。

APR-iconv は例えば Windows ネイティブ版の Subversion で利用されています。(Cygwin の Subversion は libiconv を利用するので、APR-iconv は利用しません)

2010-02-13

Python 2.7a Unicode → CP932 Patch

http://dl.dropbox.com/u/1340991/cp932_roundtrip/Python-2.7a3-cp932-patch.txt

Python 2.7a3 用に、UNICODE → CP932 の変換時に Windows とは異なる文字へ変換される部分を Windows と一致させるパッチを作ってみました。

Python は昔から PyJUG の ML で日本語関連のパッチが作られていたりしているので、未だに CP932 の変換表が Windows とは異なっているのは何か理由があるような気がするのですが、ML のログを眺めてもよくわかりません。

パッチを ML に投げるべきなのかどうか?

(2/22 追記)

http://dl.dropbox.com/u/1340991/cp932_roundtrip/Python-2.7a3-cp932-patch2.txt

Unicode ⇒ CP932 で、Java と glibc が行う変換と互換になるようにいくつか文字を追加したパッチ。*1

(2/22 追記2)

報告してみた。 http://bugs.python.org/issue7983

*1:この変換表を作るのは結構めんどくさい...