JDBCで"〜"が出るか

| | コメント(2)

JSP/Servletのお仕事でで問題に直面しています。
Postgresqlに格納した日本語の"〜"の表示ができないのです。

文字が化けてしまいます。

これはお客様の環境で起こっていて、同じホスティングサービスの私のサーバーでは起こっていません。

ネットで情報を検索したのですが、いやはや、日本語の問題は、私の理解を超えています。

Unicodeでも標準UnicodeとMS Unicodeがあり、"〜"は両者で違うコードだということ。
この辺が根本原因らしいのですが、ではどこで解決するべきなのかというと霧の中。

JDBCドライバではないかと見当をつけ、プロバイダに問い合わせ中です。

カテゴリ

コメント(2)

miyata :

ご参考になるかどうか。

〜文字は一番いやらしい問題だそうです。
Unicodeのマッピングがエンコーディングによって異なることが原因だと言うことですが。

SJIS 、EUCJISでは、FULLWIDTH TILDE(FF5E)、
MS932(主にWindows環境)では、WAVE DASH(301C)にマップされますが、
アプリケーション内で、エンコーディングが混在する時に文字化けが起こるそうです。

本によると、解決策として、次の2点がありました。
(1)
〜文字のUnicodeマッピングはMS932の時だけ異なっているので、
読み込んだ時のエンコーディングを判定し、MS932であれば、WAVE DASHをFULLWIDTH TILDEに変換する。
書き出す時も同様に判定を行い、MS932であれば逆の変換を行う。
こうすれば、複数のエンコーディングが混在する環境でも、〜が?に化けることはないということです。

(2)
出力をUTF8に限定する。ただし、Unicodeフォントが必要。

現実的に考えると、(1)の方法になるのでしょうか。

Hiroshi :

miyataさんのサイトの「文字化け対策」を読みました。大変参考になりました。ありがとうございました。日本語は奥が深い・・・というか乱れているというべきか・・・。

コメントする

このブログ記事について

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

ひとつ前のブログ記事は「ストップウォッチ」です。

次のブログ記事は「WAVE DASH問題」です。

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

Powered by Movable Type 4.0