2017-04-04 49 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客戶端程序中。無論如何,仍然是很好的解決方案,也許它會幫助別人 –