如何从$ row中删除特殊字符

时间:2013-07-16 08:33:41

标签: php mysql database string

实际上,当我从localhost上的数据库中获取数据时,我遇到了问题。数据库包含带有特殊字符的行。

例如 - “你做得很好”。

但是当我使用echo $row['lines'];获取数据时,它会带来“你做得很好”。

任何人都可以帮我解决这个问题。

4 个答案:

答案 0 :(得分:2)

我怀疑这个文本实际上并没有使用'字符,而是使用了简单的左单引号,这是一个Unicode字符,并不是所有字符集都可用。因此,如果您使用的是非Unicode字符集,它会变得怪异并将其表示为?

此问题可能出现在代码中的几个不同位置,但需要检查的是:

  • 您的数据库是否使用UTF8?
  • 您的HTML是否使用UTF8编码,例如<meta charset='utf-8'>

也许还有其他几个。大多数情况下,检查整个管道并确保它是UTF-8直通。

答案 1 :(得分:1)

检查你的数据库编码,在php中检查你的连接编码,检查你的php-page编码。前两个应该匹配。如果页面编码与db编码不匹配,则应考虑使用iconvmb_convert_encoding函数。

如果你使用html,也应该有正确的元标记,比如

<meta charset='utf-8'>

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

另外,如果你从php发送正确的标题会很棒:

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

答案 2 :(得分:0)

看起来像编码问题。尝试使用...

$row["lines"] = utf8_encode($row["lines"]);

...并确保您的网站启用了utf-8编码。

答案 3 :(得分:0)

我不建议在将其输入数据库之前尝试使用HTML编码之类的东西。其中一个问题是它使访问数据变得更加困难,例如按字母顺序检索结果。

我建议将所有内容切换为UTF-8。这意味着:

  • 所有数据库表
  • 您使用的任何编辑器
  • 显示数据的页面中的元标记