2014-12-02 305 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); 

希望这将有助于