windowsのmysql(Ver14,14 distrib5.6.16)を利用しているとき、漢字の入ったレコードを挿入しようとすると以下のように?が表示されてしまいます。
因みに記憶だ正しければ、2と3のaaは、「田」で4のaaが「西沢」と記述したはずです。
mysql
1mysql> select * from renzoku; 2+-----+------+ 3| ren | aa | 4+-----+------+ 5| 2 | ? | 6| 3 | ? | 7| 4 | ?? | 8+-----+------+ 93 rows in set (0.00 sec)
テーブルの構造は、こうなっております。
mysql
1mysql> desc renzoku; 2+-------+-------------+------+-----+---------+----------------+ 3| Field | Type | Null | Key | Default | Extra | 4+-------+-------------+------+-----+---------+----------------+ 5| ren | int(11) | NO | PRI | NULL | auto_increment | 6| aa | varchar(10) | YES | | NULL | | 7+-------+-------------+------+-----+---------+----------------+ 82 rows in set (0.01 sec)
文字コードが原因なのかと思い調べてみたところ
mysql
1mysql> show variables like "chara%"; 2+--------------------------+--------------------------------+ 3| Variable_name | Value | 4+--------------------------+--------------------------------+ 5| character_set_client | cp932 | 6| character_set_connection | cp932 | 7| character_set_database | utf8 | 8| character_set_filesystem | binary | 9| character_set_results | cp932 | 10| character_set_server | utf8 | 11| character_set_system | utf8 | 12| character_sets_dir | C:\xampp\mysql\share\charsets\ | 13+--------------------------+--------------------------------+ 148 rows in set (0.01 sec)
となりました。しかし今現在利用している漢字が?となってしまうDBとは、別のDBで漢字を入力すると以下のようになります。
mysql
1mysql> select * from tb1; 2+------+------+------+ 3| bang | nama | tosi | 4+------+------+------+ 5| A101 | 佐藤 | 40 | 6| A102 | 高橋 | 28 | 7| A103 | 中川 | 20 | 8| A104 | 渡辺 | 23 | 9| A105 | 西沢 | 35 | 10| A106 | 西沢 | 38 | 11| A107 | 田 | 38 | 12+------+------+------+ 137 rows in set (0.00 sec)
つまり**?にならず入力したとおりに漢字が表示されます。上手くいかなかった方は、いくら漢字を入力しても「?」**ですがこちらは、記述したとおりの漢字が表示されます。
この漢字がかならず表示される方の構造はこうなっております。
mysql
1mysql> desc tb1; 2+-------+-------------+------+-----+---------+-------+ 3| Field | Type | Null | Key | Default | Extra | 4+-------+-------------+------+-----+---------+-------+ 5| bang | varchar(10) | YES | | NULL | | 6| nama | varchar(10) | YES | | NULL | | 7| tosi | int(11) | YES | | NULL | | 8+-------+-------------+------+-----+---------+-------+ 93 rows in set (0.00 sec)
なぜ、一方では、上手く漢字が表示されているのにもかかわらず、もう一方では、表示されないのでしょうか。
※因みに漢字が表示されている方も嘗て文字コードに問題があったみたいで、いくら文字を入力しても**「?」**どころか何も表示されない状態でしたがこちらで解決し、何とか漢字が表示できるようになったのですが、今回は、上手くいくDBといかないDBが混在している状態です。
回答1件
あなたの回答
tips
プレビュー