JDBCで"~"が出るか

| | コメント(2) | トラックバック(0)

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

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

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

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

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

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

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: JDBCで"~"が出るか

このブログ記事に対するトラックバックURL: http://codeanimato.com/mt/mt-tb.cgi/356

コメント(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さんのサイトの「文字化け対策」を読みました。大変参考になりました。ありがとうございました。日本語は奥が深い・・・というか乱れているというべきか・・・。

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

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

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

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

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

Powered by Movable Type 4.0

Twitter