当我从数据库中提取内容时,这些字符的原因是什么?

时间:2012-03-07 22:57:23

标签: php mysql codeigniter encoding

我从我的数据库中提取了一些内容,当我显示它时,我偶尔会在整个内容中散布一些随机字符。我看到很多空间都在哪里。我也在某些地方“。”

当我在phpMyAdmin中查看时,字符不会出现。如何正确编码内容?这是我在插入内容之前应该做的事情,还是我在显示时所做的事情?

3 个答案:

答案 0 :(得分:1)

这是UTF-8被误解为CP1252。确保所有适当的标题都已到位。

>>> print u'’'.encode('cp1252').decode('utf-8')
’

答案 1 :(得分:1)

存储的数据是什么字符集?

例如,如果数据存储为UTF-8,那么在显示数据时,您需要确保页面编码也设置为UTF-8。

如果它存储在其他字符集中,则根据需要设置页面编码。

您可以通过传递适当的标题来执行此操作:

Content-Type: text/html; charset=utf-8

或者让浏览器知道您的文档:

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

在HTML5中:

<meta charset="utf-8" />

答案 2 :(得分:1)

IMO,最好的办法是在你的文件/数据库上使用utf-8(或者至少在所有地方使用相同的编码)。

请检查您的application / config / database.php上$ db ['default'] ['char_set']和$ db ['default'] ['dbcollat​​']下的内容以及您正在使用的编码在你的views / html中。如果您在PMA上正确看到数据,那么问题可能就在您的视图中。

打印文本时,请尝试使用utf8_encodeutf8_decode