我的网站上有来自 mysql 数据库的日语。
网站上的其他日文文本显示正常,但从数据库中出来的内容如下:
????????
数据库设置为 UTF8,网页也是如此。
为了解决这个问题,在我调用我使用的数据库之前:
$db->query("SET NAMES utf8");
我想知道是否有更好/更简单的方法来完成上述操作,而不必在每次查询之前设置名称?
您不必SET NAMES utf8
在每次查询之前都使用它,只需在建立连接后运行它。这是 PDO 的示例:
try {
$dns = "mysql:host={HOST};dbname={DB}";
$user = "{USER}";
$pass = "{PASS}";
$con = new PDO($dns, $user, $pass);
} catch ( Exception $e ) {
echo "Connexion error ", $e->getMessage();
die();
}
$con->query("SET NAMES utf8;");
//and now, as many queries as you want
如果您使用 PHP >= 5.3.6,您可以在连接字符串中定义字符集(以前的 PHP 版本忽略它):
try {
$dns = "mysql:host={HOST};dbname={DB};charset=utf8";
$user = "{USER}";
$pass = "{PASS}";
$con = new PDO($dns, $user, $pass);
} catch ( Exception $e ) {
echo "Connexion error ", $e->getMessage();
die();
}
//and now, as many queries as you want