こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

4バイトUTF-8文字でUPDATEするには?

お世話になります。

Windows7 Pro 32bit SP1内に、
MySQL Ver5.5.12と、
phpMyAdmin Ver3.3.10.1を入れています。
(ほかに、
 Apache HTTP Server 2.2.19(VC9)、
 Apache Tomcat 6.0.32、
 PHP 5.3.6(VC9 x86 ts)、
 Eclipse3.6(Helios) pleiades-All-In-One(Java)なども)

この開発環境で、
phpMyAdminを開いて、
文字コードとしてUTF-8(3バイト以内の文字)では、
SQL文のUPDATE処理等が、
問題無く動作していることを確認済です。

そこで、質問内容ですが、
UTF-8で4バイトになる文字(JIS X 0213の漢字第3・第4水準の一部が4バイトになる)、
「JIS X 0213(1面)(漢字第3水準)」
Unicode:U+2000B
UTF-16 :0xD840 0xDC0B
の文字である、"𠀋"を、
   ↓
phpMyAdminを開いて、これまで3バイトまでのUTF-8文字と同様に、
1つのVARCHAR属性フィールドに対して、
𠀋
と手入力して、
phpMyAdminの[実行する]ボタンをクリックして、
UPDATEしてみたところ、
登録された文字列が、"????"として更新されてしまいます。

これを、正しい文字
𠀋
として更新されるようにするには、
どのような対応をすれば、よろしかったでしょうか?

なお、現在、
コマンドで、
SHOW VARIABLES LIKE 'char%';
を実行すると、
以下のような表示がされている状態です。
  ↓
character_set_client    :utf8mb4
character_set_connection :utf8mb4
character_set_database  :utf8mb4
character_set_filesystem :binary
character_set_results   :utf8mb4
character_set_server   :utf8mb4
character_set_system   :utf8
character_set_dir      :D:\mysql\share\charsets\

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

投稿日時 - 2011-06-02 14:27:19

QNo.6781116

すぐに回答ほしいです

質問者が選んだベストアンサー

直接の回答になっていませんが、MySQL 5.5.9で
character_set_client    :utf8mb4
character_set_connection :utf8mb4
character_set_database  :utf8mb4
character_set_filesystem :binary
character_set_results   :utf8mb4
character_set_server   :utf8mb4
character_set_system   :utf8
の状況で、rubyからなら「𠀋」をINSERTも、SELECTしてcharset=utf-8のページに出力、表示できました。
また、phpからでもSELECTして表示は可能でした。

どうも、phpMyAdminの内部動作に関係があるようです。

投稿日時 - 2011-06-03 02:19:31

お礼

「nora1962」様

お世話になります。

ご回答いただきました内容は、大変参考になりました。

なお、急遽、私の業務都合上、
「4バイトUTF-8文字コードへの対応作業」が、
1~2か月先に開始時期が延びましたので、
そのころにでも、教えていただきましたように、
phpMyAdmin以外のツールを利用して、
同じオペレーションを試してみようと思います。

また機会がありましたら、よろしくお願いします。
本当にありがとうございました。

投稿日時 - 2011-06-03 11:52:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問