2015-02-07 123 views
0

我已經有一些數據存儲在MySQL的UTF-8陰暗的表中​​。當我在phpmyadmin中查看數據時,它顯示正確,像這樣PHP - 字符串不能正確顯示,儘管UTF-8編碼

★StatTrak™M9刺刀|藍鋼(略有磨損)

但是,當我通過打印命令將此數據輸出到UTF-8編碼文檔時,顯示不正確。它看起來像這樣:

? StatTrak 翻轉刀|淡出(工廠新)

我一直在搜索互聯網一段時間了。到目前爲止,我所做的是將php中的'default_charset'設置爲UTF-8,並將nginx配置爲使用相同的編碼。我已經檢查了Firefox中的頁面信息,它說它是UTF-8編碼,所以這似乎工作。我不明白的是爲什麼它仍然沒有正確顯示字符。

有誰知道如何解決這個問題?

回答

2

有跡象表明,需要做兩件事情:在查詢到UTF-8

1.設置MySQL的編碼(我並不意味着衝突)。
2.在HTML代碼的輸出中設置characeter編碼。

對於MySQL,你需要打開連接到數據庫後立即執行這些查詢:

mysqli_query($con,"SET NAMES utf8"); 
mysqli_query($con,"SET CHARACTER_SET utf8"); 

並顯示在HTML輸出數據在UTF-8編碼使用這個元標記在你的腦袋部分:

<html> 
    <head> 
     <meta charset="UTF-8"> 
    </head> 
<body> 
    <?php print("your code here..."); ?> 
+0

哦,對不起,你比我快一點,當你回答時,我已經打字了我的答案。不管怎樣,謝謝你。 – DealerJoe 2015-02-07 19:55:12

+0

太棒了!我正在把頭髮撕掉! – Robusto 2017-05-04 03:10:41

0

我發現問題是什麼。你需要告訴MySQL要保持UTF-8編碼,當你通過執行以下查詢執行查詢:

SET NAMES「utf-8」

這將保持UTF-8編碼,一切都將正確顯示。