LoginSignup
2
1

More than 3 years have passed since last update.

Heroku MySQLのデータベースから持ってきた日本語が文字化けする

Posted at

3行で

環境

PHP, Heroku, ClearDB, Mac

文字化け

HerokuとMySQLを同期するやり方は割愛。
Heroku公式のやり方でを参考にMySQLからデータを持ってくる。

<?php
$url = parse_url(getenv("CLEARDB_DATABASE_URL"));

$server = $url["host"];
$username = $url["user"];
$password = $url["pass"];
$db = substr($url["path"], 1);

$conn = new mysqli($server, $username, $password, $db);
?>

原則ここに書いてある内容はいじらなくてよい。
例えばカッコの中身をデータベース名やユーザー名に変える必要はない。
しかしこの形でデータベースから日本語のデータを持ってくると『?????』 といった形で出力されてしまう。

Heroku+ClearDBで文字化けしていた件

これでイケるかと思ったけどダメだった。

解決

$conn = new mysqli($server, $username, $password, $db);
$conn->set_charset('utf8');

文字コードを指定してあげる。これだけ。
教えていただいて解決したんですが、これを参考にするべきだったのかも。

mysqli::set_charset - PHP.net
https://www.php.net/manual/ja/mysqlinfo.concepts.charset.php

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1