平成30年1月28日(日曜日)
以下現象発生、素のHPでも同現象有り、結果PHPでもWordPressでも無く、表題のとおり。
現象:
??????(??????)??????????????????????-?? ?????????(??????) (1)
対処:
// $mysqli = new mysqli($db_sever, $user_name, $password, $db_name); if (mysqli_connect_error()) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } mysqli_set_charset($mysqli, "utf8"); if ($result = $mysqli->query("SELECT id FROM " .$table_name)) { while ($row = $result->fetch_assoc()) { echo $row["id"] . PHP_EOL ; } $result->close(); } //
原因:
mysql設定(SAKURA スタンダードプラン)文字コード設定 ujis(euc-jp)
DBテーブル格納文字コード utf8_general_ci
両者のコードが異なり、結果euc-jpの文字コードが返されるか。
その他、参考:
SAKURAの管理ツールでは、以下↓
MySQL の文字セット: UTF-8 Unicode (utf8)
しかしながら、SSHログイン後、mysqlコマンド
mysql> show variables like “chara%”;
にて確認すると、ujis設定となっている。
+————————–+—————————-+
| 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 | /usr/share/mysql/charsets/ |
+————————–+—————————-+
その他、MySQL5系はテーブル毎に任意の文字コードを設定することが可能など(未実施)