UTF8 mysql编码数据库,但不显示PHP中的特殊字符

时间:2013-10-09 20:16:22

标签: php html mysql utf

我在MySQL中有一个带utf_general_ci编码的数据库,当我在Navicat或PhpMyAdmin中插入数据并在那里进行查询时,特殊字符返回正常。

但是在php变量中它们显示如下:

how they show

我的数据库和排序规则:

database

并且在我的html doc中如果它是正常的

它显示的字符OK,它只在php变量时才起作用

请帮帮我

3 个答案:

答案 0 :(得分:3)

尝试:

$variable = utf8_encode($valueCommingFromDB);

答案 1 :(得分:1)

重要的是要注意mysql中的utf8相当有限,尤其是utf8_general_ci。您可能想切换到utf8_unicode_ci或utf8mb4

What's the difference between utf8_general_ci and utf8_unicode_ci

http://mathiasbynens.be/notes/mysql-utf8mb4

答案 2 :(得分:0)

平,

首先确保你在html标签中有这个元

<meta charset="UTF-8">

你也可以在php中查看这行,在mysql提取上面

header('Content-type: text/html; charset=utf-8');

如果你将特殊字符作为html代码存储在数据库中,就像这个&#39;'当你解压缩尝试使用这个php函数时

htmlspecialchars_decode($your_text_from_db);