Bulknews::Subtech RSSフィード

2007/11/19 (月)

Softbank のSJIS外字領域と cp932 の重複 19:29  Softbank のSJIS外字領域と cp932 の重複 - Bulknews::Subtech を含むブックマーク はてなブックマーク -  Softbank のSJIS外字領域と cp932 の重複 - Bulknews::Subtech

修正した ucmlint を Encode-JP-Mobile のucmにかけてみた。docomo,kddi に関しては無問題。x-sjis-softbank-auto (3GC 機種で利用されているSJIS外字) に関しては cp932 とのエンコーディング重複 131文字が見つかった。

http://blog.bulknews.net/mt/auto-dupe.txt

なのでこれらの文字を cp932 のエンコーディングで表示しようとするとかわりに絵文字が出るということになる。・・・のだけど、そもそもこいつらは cp932.txt にはあるが shiftjis.txt にはなかった。ので、ucmから削除。

docomo,kddiの方も cp932 にはあるけど実際の端末では表示できない文字セットがかなり入ってるかもしれないなぁ。

Encode をさっそくハックした 19:03  Encode をさっそくハックした - Bulknews::Subtech を含むブックマーク はてなブックマーク -  Encode をさっそくハックした - Bulknews::Subtech

Encode::JP::Mobile のucmファイルに ucmlint をかけてみると盛大に warning や error がでまくって原因をみてみたのですが、ほとんど fallback フラグ (encode only や decode only) を正しく解釈していないのが原因のよう。

ためしに Encode 自身に付属している ucm ファイル(cp932.ucmとか) に ucmlint してみると、これまた盛大にエラー。

404 Blog Not Found:perl - EncodeをCodeReposに

というわけで CodeRepos 上で修正

Changeset 1791 ? CodeRepos::Share ? Trac

これで付属している ucm に対して正しく lint して no errors になった。もちろん適当に fallback を変えたり unicode/encoding がかぶるように修正すると warning/error がでるようになります。

ちなみに big5-hkscs.ucm だけはこの修正でもまだエラーがでてるみたい。

> perl -Ilib ./bin/ucmlint -e ucm/big5-hkscs.ucm
ucm/big5-hkscs.ucm:error in line 561: decode('big5-hkscs', C6,DE) != 301E
ucm/big5-hkscs.ucm:error in line 1451: decode('big5-hkscs', C6,DF) != 4EDD
ucm/big5-hkscs.ucm:warning in line 18347: dupe decode map: C6,DE => U301E and UF6EE
ucm/big5-hkscs.ucm:warning in line 18348: dupe decode map: C6,DF => U4EDD and UF6EF
ucm/big5-hkscs.ucm: 2 errors found