PHPとMySQLで文字化けしてた原因
PHPとMySQLを連携させてDBを触ってたんですが,PHPの設定とかApacheの設定とかはしっかりとutf8になってるのに,なぜか日本語でDBにPHP経由で登録をしようとすると,文字化けが起きてました.
MySQLでDBを作った時もちゃんとutf8にしてたし,他の設定も大丈夫なのにおかしいなーと思って,ずっと悩んでました.
色々なサイトを見てると,headerに
header('Content-Type: text/html; charset=UTF-8')
を指定すればいけるとか,
mysql_query('set names utf8'); mb_language("uni"); mb_internal_encoding("utf8"); mb_http_input("auto"); mb_http_output("utf8");
を書けばいける的なサイトばっかりヒットしてました.
全部試したんですけど全然上手く行かなくて,最終的に変更した部分がPDOの所で,
$db = new PDO('mysql:host=localhost;dbname=hogehoge;charset=utf8', $USER, $PASSWORD);
charset=utf8を指定してなかったのが問題だったようです.
とりあえずこれで,DBに書き込む時も文字化けしなくなったし,DBから読み込む時も文字化けしなくなりました.
Gitlabで出るエラーに悩まされてた。
研究室用に余っていたPCを使ってGitサーバーを建てた。
今回は、フリーで使用できるGitlabを使用した。