JDBCで"~"が出るか
JSP/Servletのお仕事でで問題に直面しています。
Postgresqlに格納した日本語の"~"の表示ができないのです。
文字が化けてしまいます。
これはお客様の環境で起こっていて、同じホスティングサービスの私のサーバーでは起こっていません。
ネットで情報を検索したのですが、いやはや、日本語の問題は、私の理解を超えています。
Unicodeでも標準UnicodeとMS Unicodeがあり、"~"は両者で違うコードだということ。
この辺が根本原因らしいのですが、ではどこで解決するべきなのかというと霧の中。
JDBCドライバではないかと見当をつけ、プロバイダに問い合わせ中です。
カテゴリ
ソフトウェアトラックバック(0)
このブログ記事を参照しているブログ一覧: JDBCで"~"が出るか
このブログ記事に対するトラックバックURL: http://codeanimato.com/mt/mt-tb.cgi/356


ご参考になるかどうか。
~文字は一番いやらしい問題だそうです。
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)の方法になるのでしょうか。
miyataさんのサイトの「文字化け対策」を読みました。大変参考になりました。ありがとうございました。日本語は奥が深い・・・というか乱れているというべきか・・・。