特殊字符不会显示在浏览器中

时间:2014-12-02 16:36:10

标签: php mysql

当从MySQL数据库回显数据时,我在文本中得到了奇怪的符号。我试过htmlspecialchars_decode(),但无济于事。数据在MySQL数据库中存储为VARCHAR,并在MySQL工作台中查询时显示。

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

如何在html中显示这些字符?

Screenshot

3 个答案:

答案 0 :(得分:1)

您是否在页面的HTML中声明了一个字符集?

在HTML5中,这很好:

<meta charset="UTF-8">

旧版(HTML 4.01)需要:

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

答案 1 :(得分:1)

您有编码问题。

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

  2. 您需要在设置与DB的连接后运行查询&#34; SET NAMES utf8&#34;

  3. 如果你使用PDO需要像这样设置PDO new M_PDO("mysql:host={$dbhost};dbname={$dbname};charset=utf-8", $dbuser, $dbpassword);

  4. 此外,你可以使用这个函数来编码html实体的重音

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

    希望它会有所帮助

答案 2 :(得分:0)

这对我有用:

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

UTF-8 all the way through

被盗