[Seasar-user:20456] Re: OracleのUnicode問題について

halt [E-MAIL ADDRESS DELETED]
2010年 12月 23日 (木) 16:34:13 JST


阿さん
はじめまして、大塚と申します。

> 画 面から 文字化け文字('〜'、'‖'、'−'、'¢'、'£'、'¬')を入力しDBへ登録、
> それを取得し画面に表 示すると文字化けが発生します。
(中略)
>   ・JSP(charset=Shift_JIS)
>   ・EncodingFilter(charset=Shift_JIS)
この部分が気になったのですが、Javaの段階で文字化けなく扱えているか、
System.outなどで確認されましたでしょうか?

ブラウザではなくJavaの時点で既に文字化けしているようでしたら、
ご推測のとおりDB<->Javaの問題だと思います。
(私はOracleに詳しくないので、以下の指摘は読み飛ばしてください。)

しかし、System.outの時点で文字化けが起こっていなければ、
S2JDBCに限らずServletで誰もが経験するHTTPレスポンスのエンコード問題かもしれません。
↓の記事で分かりやすく解説していただいているので、ご一読ください。
 http://moyolab.blog57.fc2.com/blog-entry-63.html

以上、ご参考になれば幸いです。
(もし阿さんがベテランの方でしたら、私の出過ぎた指摘をご容赦ください。)

2010年12月23日14:24 a.br.taka <[E-MAIL ADDRESS DELETED]>:
> お世話になっ ております。
> 阿 比留と申します。
>
> 今回、 SAStruts+S2JDBCを利用してシステム開発を行っており、
> OracleのUnicode変換での文字化けについて質問がございます。
> (SAStruts、S2JDBCは初心者レベルです。)
>
> 画 面から 文字化け文字('〜'、'‖'、'−'、'¢'、'£'、'¬')を入力しDBへ登録、
> それを取得し画面に表 示すると文字化けが発生します。
> DBから取得した値を画面に渡す ための変換処理(JA16SJISTILDE→SJIS)が
> 必要だと思うのですが、どこでどのように変換処理を実装するのでしょうか?
>
> 状況を調べたところ、下記のような状況までは確認できています。
>  ・画面(SJIS)→Unicode→DB(JA16SJISTILDE)
>    この場合は、SJIS→JASJISTILDEへ想定通り変換されます。
>    例) 0x8191→U+00A2→U+FFE0
>
>   ・DB(JA16SJISTILDE)→Unicode→画面(SJIS)
>    この場合は、文字化けになってしまいます。
>    例) U+FFE0→U+00A2→NG(0x8191 にならない)
>
> ちなみに、下記以外は特に文字コードの設定は行なっておりません。
>   ・JSP(charset=Shift_JIS)
>   ・EncodingFilter(charset=Shift_JIS)
>  ・DB(JASJISTILDE)
>
> ■ 環境
> DB:Oracle11g  Release2
> OS:Linux
> WEB:Apache 2.2.16
> AP:Tomcat 6.0.29
> そ の他:
>   Java6
>   sa-struts-1.0.4-sp8.jar
>   s2-framework-2.4.43.jar
>
> 下記のように 同様の質問や方法もございましたが、
> ど うしてもわからない状態です。
>
>http://ml.seasar.org/archives/seasar-user/2006-August/006334.html>
>http://ml.seasar.org/archives/seasar-user/2004-June/000795.html>
>http://d.hatena.ne.jp/higayasuo/20040915/1095232861>
>
> 少しでも進展 になるような情報が頂ければと思います。
> 以 上です。宜しくお願い致します。
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>


Seasar-user メーリングリストの案内