勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLでphpMyAdminやAdminer上だけ文字化けする場合の対応方法

   2024/04/16  MySQL

レンタルサーバーのプログラムでWebページ上では文字化けしていないのに、phpMyAdminやAdminer上では文字化けしているというケースがあった。

mysql_client_encoding()で調べるとlatin1となっていた。set_charsetではutf8を指定しており、MySQL側の文字コードもutf8として設定していた。

 

原因

PHP側の以下部分が原因だった。

$mysqli->set_charset('utf-8');//こうなっていた。これはアウト。
$mysqli->set_charset('utf8');//これが正しい

latin1として設定されているMySQLに無理やりutf8の内容を突っ込んでいた為、MySQL上では文字化けしており、PHPプログラム側ではutf8で取得できていたみたい。

 - MySQL

  関連記事

MySQLで特定の値を加算しつつNULL値の場合は0にする方法
MySQLで特定の値を加算しつつNULL値の場合は0にする方法

いくつかのコードに対して投票を行い、その合計値をスコアとして出したい。ただ、投票 ...

MySQLでデータがあれば上書き、無ければ挿入する
MySQLでデータがあれば上書き、無ければ挿入する

既存のソースを編集時に「REPLACE INTO~~」 という見たことの無いSQ ...

PHPからMySQLにシリアライズしたデータを格納
PHPからMySQLにシリアライズしたデータを格納

アンケートフォームみたいなのがあって、 今後も定期開催し、尚且つ質問内容は増減す ...

SortableJSを使ってデータの並べ替え&保存
SortableJSを使ってデータの並べ替え&保存

あるシステムを拝見した際にtableタグ内に並んでいる項目をドラッグ&ド ...

MySQLのtinyintのカラムにbool値を入れた場合
MySQLのtinyintのカラムにbool値を入れた場合

他所のシステムに携わることがあり中身を色々見ているとMySQLでtinyint( ...