1
4

2 に答える 2

5

As you see in your script, you are instructing the browser to use UTF8. That is the first step.

However your database needs the same thing and also the encoding/collation on the tables need to be UTF8 too.

You can either recreate your tables using utf8_general_ci or utf8_unicode_ci as the collation, or convert the existing tables (see here)

You need to also make sure that your database connection i.e. php code to mysql is using UTF8. If you are using PDO there are plenty of articles that show how to do that. The simplest way is to do:

$mysqli->query('SET NAMES utf8');

NOTE The change you will make now is final. If you change the connection encoding to your database, you could affect existing data.

EDIT You can do the following to set the connection

$mysqli = new mysqli($host, $user, $pass, $db);

if (!$mysqli->set_charset("utf8")) {
   die("Error loading character set utf8: %s\n", $mysqli->error);
}

$mysqli->close();

Links of interest:

Whether to use "SET NAMES"

于 2012-10-22T19:14:05.837 に答える
1

Execute the SET NAMES 'utf8' query prior to any others.

于 2012-10-22T19:17:26.763 に答える