プロが教えるわが家の防犯対策術!

お世話になります。

現在、java Version6 Update24(日本語版)のJDKを、
Windows7 Pro 32bit SP1内に入れて、

Apache HTTP Server 2.2.19(VC9)、
Apache Tomcat 6.0.32、
PHP 5.3.6(VC9 x86 ts)、
MySQL5.5.12、
Eclipse3.6(Helios) pleiades-All-In-One(Java)、
という開発環境で、
Javaサーブレット、JSP、JavaBeansを利用して、
動的Webアプリを開発中です。

まず最初に、文字コードとしてUTF-8(3バイト以内)で、
上記環境を一通り作成し、SQL文のUPDATE処理等が、
JavaとMySQL間で問題無く動作していることを確認済です。

その状態で、
次に、
UTF-8で4バイトになる文字(JIS X 0213の漢字第3・第4水準の一部が4バイトになる)を、
ためしに、直接JavaサーブレットのdoPostメソッド内へ、
「JIS X 0213(1面)(漢字第3水準)」
Unicode:U+2000B
UTF-16 :0xD840 0xDC0B
の文字である、"

A 回答 (2件)

それってJava側の問題?


MySQL側の問題じゃないの?
http://dev.mysql.com/doc/refman/5.5/en/charset-u …

この回答への補足

ご回答ありがとうございます。

私の書き方が、わかりずらかったのですが、
今回の質問内容は、
MySQLに接続する前の段階になります。

Javaのサーブレット(doPostメソッド)内において、
文字列変数strTestに対して、
4バイトUTF-8文字を、1文字代入しているだけですが、
この代入直後に、Eclipse3.6(Java)で、
デバッグトレースして見た
文字列変数strTest内の値が正しく表示されていなかった為、
この段階で、正しく表示されるようにする必要があると思っています。

もしかするとJava自体が、このような4バイトUTF-8文字を
プログラム内で、取り扱えないような仕様なのでしょうか?
(3バイト以内のUTF-8文字は、問題無く取り扱えている状況の為・・・)

もしよろしかったら、アドバイスいただけましたら幸いです。
よろしくお願いします。

補足日時:2011/06/03 11:43
    • good
    • 0
この回答へのお礼

残念ながら、この問題は未解決のままですが、
こちらで実際に必要になる予定は数カ月先の為、
もう少し過ぎてから、
あらためてネットなどで情報収集してみます。

遅くなりましたが、
本当にご回答ありがとうございました。

お礼日時:2011/06/17 09:48

>この代入直後に、Eclipse3.6(Java)で、


>デバッグトレースして見た
>文字列変数strTest内の値が正しく表示されていなかった為、
多分、これもeclipseで正しく表示できないだけです。
ファイルなどに出力して試してみてはどうでしょうか。

String charset = "utf-8";
String strTest = "

この回答への補足

「yamada_g」様

お世話になります。

ご回答ありがとうございます。

私も、eclipseでデバッグした際の変数の値には"□□"となっていましたので、
そこで正しく値がstrTest内に代入出来ていないのが、
障害原因と思っていました。

以下にあらためて、
補足質問を追加で、させていただきますので、
もしよろしかったら、ご回答をお願いします。
  ↓
strTestに代入後、
そのままeclipseのデバッグトレースで処理を進めていって、
MySQL5.5.12
(utf8mb4という4バイトUTF-8文字に対応した
 文字コードでデータベースおよび、その中の各テーブルを
 新たに作成済で、その各テーブル内に対して、
 これまで利用してきた3バイト以内のUTF-8文字データを
 前もって正常に格納済)
に対して、SQLでUPDATEを実施した際にも、
SQL Exceptionエラーが発生している状態です。

なお、Javaサーブレット内(doPostメソッド内)では、
4バイトUTF-8文字に対応した文字コードが、
見当たらない状態のため、これまで通り、
utf8でエンコードを指定している状態です。

javaサーブレット内で、
4バイトUTF-8文字に対応した文字コードで、
エンコードする必要があるようでしたら、
何という文字コード(utf8以外で・・・?)で、
エンコードを指定すれば、
よろしかったでしょうか?

それとも、MySQL5.5.12(utf8mb4)側の
問題でしたでしょうか?

以上になります。
よろしくお願いします。

補足日時:2011/06/03 19:32
    • good
    • 0
この回答へのお礼

残念ながら、この問題は未解決のままですが、
こちらで実際に必要になる予定は数カ月先の為、
もう少し過ぎてから、
あらためてネットなどで情報収集してみます。

遅くなりましたが、
本当にご回答ありがとうございました。

お礼日時:2011/06/17 09:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!