MySQLの文字コードはEUC-JPだが、ファイルはutf-8にしておいて、挿入時にEUC-JPに変更してつっこんでみたいという記事。6月26日記事

目次





MySQLはEUC-JP(ujis)、HTMLファイルもEUCにしてみる。

MySQLの文字コードチェック

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 /文字セットディレクトリ/



HTMLファイル等もEUCにしてみる。

<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="euc-jp">
以下略

euc-jpで保存。
この状況で行うと確かに文字化けせずデータベースに格納されていることが確認できました。

トライ UTF-8の文字コードファイルだが、挿入する瞬間にEUC-JPにmb_convert_encodingする。

PDOの利用をする場合

$stmt->bindParam(':title', mb_convert_encoding($_POST['form_title'],"EUC-JP","UTF-8"), PDO::PARAM_STR);

こんな感じにしておく。 するとEUC-JPで挿入してくれます。

補足

機種依存文字やIBM拡張文字が含まれていると、文字によっては変換できない場合もある。 参考サイト

以上