MySql/phpMyAdminで”~”(波ダッシュ)が”?”に化ける対策

テーブルの照合順序を変更することで解決しました。


書籍のデータベースでタイトルに”~”(波ダッシュ)が含まれるものが”?”に置換されていましたが、ネットで対策を見つけたので書いておきます。

原因はテーブルの照合順序のミスマッチのようです。

現在、MySqlのテーブルはデフォルトのUTF-8になっていますが、照合順序だけsjis_japanese_ciに設定していました。

CSVファイルのインポート時もUTF-8で行っていたのですが、テーブルの照合順序がSJISになっているため、”~”が”?”に置換されていたようです。

対策は簡単で、phpMyAdminの該当テーブルの「構造」ページでテーブルのフィールド一覧を表示させ、変更したいフィールドの「変更」(鉛筆のアイコン)のところをクリックすると、フィールド構造が編集できるようになるので、そこで照合順序をutf8_general_ciに変更して保存するだけです。

取り敢えず、書籍名だけ変更して試してみました。

すでに”?”に置換されたものは治りませんが、手動で”~”に変更して、再表示させるとちゃんと表示できるようになりました。

照合順序なので、文字化けの原因になるとは思っていませんでした。

コメントは受け付けていません。