0

我的网站上有来自 mysql 数据库的日语。

网站上的其他日文文本显示正常,但从数据库中出来的内容如下:

 ????????

数据库设置为 UTF8,网页也是如此。

为了解决这个问题,在我调用我使用的数据库之前:

$db->query("SET NAMES utf8");

我想知道是否有更好/更简单的方法来完成上述操作,而不必在每次查询之前设置名称?

4

1 回答 1

1

您不必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
于 2013-03-13T15:27:27.860 回答