先日から使用しているCPIレンタルサーバーへシステムを構築しているのですが、PHP でデータベースへ文字を登録すると文字化けしてしまうようです。
CPIレンタルサーバーのコントロールパネルからデータベースを新規作成する際に文字コードをUTF-8を指定したし、CREATE TABLE も UTF-8 を指定してあり、また PHP も mb_internal_encoding もファイルのエンコーディングも UTF-8 を指定していて、ローカルサーバーではきちんと動作しているシステムなので問題ないはずなのですが。
コントロールパネルのMySQL5.5管理画面より変数をしらべると character set 関連が ujis となっていました。
character set server: ujis character set system: utf8 character set database: ujis character set client: ujis
ではこれを編集して utf8 にすれば良いのだろうと思い、編集し保存すると権限がないてめ拒否されてしまった。
そこで、PHP/PDO からデータベースへ接続するときに charset=utf8 をつけてみると読み出し、登録も文字化けすることなく解決にいたりました。
https://php.net/manual/ja/ref.pdo-mysql.connection.php
https://php.net/manual/ja/mysqlinfo.concepts.charset.php