PHP没有正确显示一些UTF-8字符

时间:2017-04-04 16:02:45

标签: php mysql

PHP正在从MySQL数据库中检索数据。现在它假设将结果显示到屏幕,但由于我的数据库包含像(ä,ö,ü,õ)这样的字符,PHP显示( ,䄔)​​。数据库正确显示所有字符,所以我认为问题不存在。

我在代码中添加以下行,将charset设置为UTF-8。

$conn->set_charset("utf8");

添加该行后,PHP会显示以下字符“”。

也尝试过:

$conn->query("SET character_set_results=utf8");
$conn->query("SET NAMES 'utf8'");

如何让PHP显示正确的字符?

这是我的代码的重要部分

$conn = new mysqli($servername, $username, $password, $dbname);

$sql = "SELECT name FROM employee";
$stmt = $conn->prepare($sql);
$stmt->execute();

$stmt->bind_result($employee);
while($stmt->fetch()){
    echo "$employee|";
}
$stmt->close();
$conn->close();

我正在运行PHP 7和MySQL 10.1.19-MariaDB。

1 个答案:

答案 0 :(得分:1)

在这种情况下考虑以下事项。

确保标题符合以下内容

Content-Type:text/html; charset=UTF-8

并尝试在html中设置UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

当文件中的字符串被硬编码时,源文件编码会出现问题。由于这个文件回应它似乎没有问题。