WAVE DASH問題

| | コメント(3)

昨日、書き込んだ"〜"の問題で、早速miyataさんからコメントがありました。

おかげさまで、仮の対応を完了しました。

仮と書いたのは、問題は"〜"だけではなく、もう何種類かあるからです。

結局、DBに書き込むときに、文字列に対して、

.replace('\u301c','\uff5e')

とし、逆に表示するときには、

.replace('\uff5e','\u301c')

とする対処を入れました。少し前にリファクタリングをやった効果があって、修正箇所は少なくてすみました。

miyataさん、ありがとうございました。

カテゴリ

コメント(3)

miyata :

文字化けは開発者泣かせですね。皆がUNICODEを使ってくれれば、苦労はないのに。

あれから興味が出て、調べてみました。
やはり、解決策としては
「この問題を根本的に解決する方法は今のところなく、正しい処理が行われるように、適時文字コード変換を行うしかありません。」
とありました。

変換テーブル違いは、こんなにありました。

~ 0x007E 0x007E[TILDE]
\ 0x005C 0x005C[REVERSE SOLIDUS]
\ 0x815F 0xFF3C[FULLWIDTH REVERSE SOLIDUS]
〜 0x8160 0x301C[WAVE DASH]
‖ 0x8161 0x2016[DOUBLE VERTICAL LINE]
− 0x817C 0x2212[MINUS SIGN]
¢ 0x8191 0x00A2[CENT SIGN]
£ 0x8192 0x00A3[POUND SIGN]
¬ 0x81CA 0x00AC[NOT SIGN]

http://java-house.jp/ml/archive/j-h-b/014452.html
を参考にしました。

Hiroshi :

miyataさん、貴重な情報をありがとうございました。とても参考になります。

ところで、私が得た情報では、Unicodeも標準UnicodeとMSのUnicodeがあるということだったのですが・・・。

http://www.siisise.net/charset.html

実は先ほど、クライアントから、どうなっていますかという、メールをいただいたばかり。おかげさまで回答することができました。

ありがとうございました。

miyata :

WEBアプリでは、サーバー => UNIX, ブラウザ => Winowsというのはごくありきたりの事なので、
「たまたまその文字(〜)を使っていなかった」と言うだけのことで
WAVE DASH問題はいつ起こっても不思議ではないわけですね。

マルチプラットフォームで動くJAVAの柔軟さがあだになっているということでしょうか。
そもそも、UNICODEの規定に従わないマ社が要因との説もありますが。
日本のJAVA技術者の受難はまだまだ続きそうですね。

JAVA PRESS Vol.37に日本語対応の特集がありました。(前々号 -> 今頃読んでます。)
風間一洋氏の「国際化と日本語処理」と言う本もあります。
(文字化けだけで1冊の書物が成り立つとは!結構なお値段です。)

コメントする

このブログ記事について

このページは、Hiroshiが2004年12月10日 15:35に書いたブログ記事です。

ひとつ前のブログ記事は「JDBCで"〜"が出るか」です。

次のブログ記事は「もう終わりにしたい・・・」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0