FC2ブログ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このまえ発見したのでメモ。

[現象]
MySQLで、普通の文字は化けないのに「①」や「℡」、「㈱」、「㍻」などの特殊文字だけが化ける

[原因]
サーバの文字コードとデータベース(テーブル)の文字コードが違っている。

[化ける例]
①クライアントをEUC-JPに設定
②"SET NAMES UJIS;"クエリを実行
③DEFAULT CHARSETがUTF8のテーブルにINSERT

※INSERTするテーブルがUJISの場合は化けません。

[結論]
特殊文字の文字化けも防ぐためには、テーブルの文字コードも合わせる必要がある。SET NAMESクエリでサーバ・クライアント間の文字コードを合わせるだけでは不十分。

[補足]
EUCJPMSとUTF8の文字コード変換には高度な互換性があるので、この二つを使う場合は化けずにやりとりできます。
たとえば
・SET NAMES EUCJPMS;
・テーブルの文字コードはUTF8
の組み合わせなどです。


上記の結論に至った実験内容を続きにまとめます。
続きを読む
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。