2014-12-02 57 views
0

當從MySQL數據庫回顯數據時,我在文本中出現奇怪的符號。我試過htmlspecialchars_decode(),但無濟於事。數據在MySQL數據庫中存儲爲VARCHAR,並且在MySQL工作臺中查詢時顯示爲他們應該顯示的數據。在瀏覽器中不顯示特殊字符

的字符包括'ëèéê,...

如何獲得這些字符在HTML中顯示?

Screenshot

+1

這個問題已經被問過。 http://www.joelonsoftware.com/articles/Unicode.html – Strawberry 2014-12-02 16:37:41

+1

試試這個:<?php header(「Content-Type:text/html; charset = utf-8」); ?>' – Rizier123 2014-12-02 16:38:08

+1

[UTF-8一路通過]可能的重複(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) – vaso123 2014-12-02 16:38:16

回答

0

這爲我工作:

$db = Database::getInstance(); 
$mysqli = $db->getConnection(); 
$mysqli->set_charset('utf8mb4'); 

被盜從UTF-8 all the way through

1

有你宣佈你的網頁的HTML字符集?

在HTML5中,這是好的:

<meta charset="UTF-8">

舊(HTML 4.01)需要類似:

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

1

你有編碼問題。

  1. 您需要設置<meta charset="UTF-8">

  2. 您需要在建立連接到數據庫 「SET NAMES UTF8」

  3. 如果您在使用PDO需要設置PDO這樣new M_PDO("mysql:host={$dbhost};dbname={$dbname};charset=utf-8", $dbuser, $dbpassword);

你也可以使用此功能後,運行查詢這將編碼口音爲HTML實體

function convert($str){ 
    return mb_convert_encoding($str, "HTML-ENTITIES", "UTF-8"); 
} 
echo convert($YourDataFromDB); 

希望這將有助於