MySQLの文字コードはEUC-JPだが、ファイルはutf-8にしておいて、挿入時にEUC-JPに変更してつっこんでみたいという記事。6月26日記事
目次
mysql> show variables like 'character_set%';
結果こんな感じ
Variable_name | Value |
character_set_client | ujis |
character_set_connection | ujis |
character_set_database | ujis |
character_set_filesystem | binary |
character_set_results | ujis |
character_set_server | ujis |
character_set_system | utf8 |
character_sets_dir | /文字セットディレクトリ/ |
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="euc-jp"> 以下略
euc-jpで保存。
この状況で行うと確かに文字化けせずデータベースに格納されていることが確認できました。
PDOの利用をする場合
$stmt->bindParam(':title', mb_convert_encoding($_POST['form_title'],"EUC-JP","UTF-8"), PDO::PARAM_STR);
こんな感じにしておく。
するとEUC-JPで挿入してくれます。
機種依存文字やIBM拡張文字が含まれていると、文字によっては変換できない場合もある。
参考サイト
以上