- ベストアンサー
文字について UNICODE
全くの初心者で恐縮です。 WEB環境で、画面入力した漢字をOracleDBに更新する。または、その逆を実施しようとしています。 が、問題がありまして、 端末で使用している文字が独自文字(2バイト系UNICODE準拠)なのです。 端末はWINXPです。OS内ではS-JISですよね。 そこで、画面の入出力やDB更新時に文字化けや 強制変換が発生するか不安なのですが。 JAVAは、独自文字でも大丈夫なのでしょうか。 とてもアバウトな質問ですみません。 もしかしたらJAVAだけの話では無いのでしょうか。 どなたか、そこら辺も含めて教えていただけますでしょうか。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
基本的には「問題あり」と言えると思います。 独自文字については情報を持ち併せておりませんのでちょっとおいて起きますが、WindowsのS-JIS(MS932マッピング)とJava内部で扱うUNICODEの間でも、既に文字変換が正しく行われないケースがあります。 (「~」とか「ー」とか、うまく変換出来ないのです。) また、OracleもS-JISであれば、JavaからOracleにセットする時点でまたマッピングの問題があります。 その辺の問題をクリアするためにWebアプリケーションサーバーが独自の方法で文字マッピングを正しく行うようサポートします。(例えばWeblogicとかは問題なくマッピングがおこなわれます。) どういうインフラでJavaのWebアプリケーション構築を考えられているのかわかりませんが、Webアプリケーションサーバーの機能をお調べになった方が良いでしょう。 独自文字については、実際に検証プログラムを用意してやってみるのが一番確実ですね。 私もJava初期の頃、苦労して検証した覚えがあります。 今なら一週間くらいあれば出来そうですよね。
その他の回答 (3)
- yutopapa
- ベストアンサー率47% (139/295)
#1です。 JavaもWebも初めての方なんですよね? ひとまず一通り勉強出来そうなサイトを一つお知らせします。 頑張って下さい。
- 参考URL:
- http://www.hellohiro.com/
お礼
はい、そうなんですよ。 まずはもっと学習いたします。 有り難うございました。
- sha-girl
- ベストアンサー率52% (430/816)
まず誤解されていますが WINXPの内部はUNICODEです。 出力の際,慣例的にS-JISがよく使われているだけです。 Oracleの場合、データベース作成時にキャラセットで文字コードを指定しています。 少なくともOracle9iではキャラクタセットの変更は後からできないので キャラクタセット変更には再構築する必要があります。 javaの標準の文字コードはISO-2022(だったかな)です。 javaの方でDBにあわせた文字コードに変換すれば問題ないかと思います。 つまり最初にOracleデータベースがどのキャラクタセットを使っているかを 調べる必要があります。
お礼
ORACLEは実はS-JISで、クライアントもS-JISでした。 システムでは、一部、S-JIS、一部UNICODEを 使用したい、という我が儘がありまして。 いずれにしろ、どうも簡単にいかなさそうですね。 もうちょっと勉強いたします。 有り難うございました。
- jun-1
- ベストアンサー率29% (18/61)
Oracle(JDBCドライバ)が8.1.7だと、下記のページのような どうにもならない問題(文字化け)が発生するようです。
お礼
色々と問題ありそうな事がわかりました。 有り難うございます。 それにしても、困った困ったです。
お礼
有り難うございます。 当方、JAVA全くの初心者なのですが、とにかくWEB系で、 という提案なので、泣きそうです。 甘えてすみませんが、できれば全くの初心者でも よく分かるサイトがあれば教えていただけないでしょうか。