2017-04-04 53 views
1

PHP正在从MySQL数据库中重新获取数据。现在假设将结果显示在屏幕上,但是由于我的数据库包含像(ä,ö,ü,õ)这样的字符,哪个PHP显示( ,䄔)​​。数据库正确显示所有字符,所以我不认为问题在那里。PHP没有正确显示一些UTF-8字符

我在代码中添加了以下行,它将字符集设置为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的运行重要组成部分。

+0

请遵循以下示例,包括错误输出 - 您遇到错误吗? http://php.net/manual/en/mysqli.set-charset.php – rybo111

+0

之前试过,没有得到任何错误。 –

+0

你有没有做过这个https://www.w3schools.com/tags/att_meta_charset.asp – rybo111

回答

1

在这种情况下请考虑以下几点。

确保标题匹配以下

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

,并尝试设置UTF-8 HTML

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

源文件编码可以使问题时,字符串中的文件是硬编码。由于这个文件回应它似乎没有问题。

+1

你也可以调用'header('Content-Type:text/html; charset = UTF-8');'在非常开始或您的代码 – am05mhz

+0

当时我曾尝试过该解决方案,但发现问题出在java客户端程序中。无论如何,仍然是很好的解决方案,也许它会帮助别人 –