在数据库中有像Â等符号,该怎么办?

时间:2011-12-12 11:59:39

标签: php mysql

我的描述中有一些符号,如â€,等等。我可以做些什么吗?或者如果它在数据库中,我现在什么都不能做?

2 个答案:

答案 0 :(得分:1)

这取决于问题究竟是什么......

如果那些字符假设在那里(例如西班牙语中的“Mañana”)那么你需要确保所有内容都是UTF-8 ...最好的方法是:

1:检查数据库表是否采用“utf-8”编码(如果没有将它们转换为utf-8)

2:正如Martin所说,确保数据库连接器是utf-8,使用类似:

mysql_set_charset('utf8'); //note that MySQL uses no hyphen here

3:确保文档为utf-8(您可以在顶部添加标题)

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

4:为了安全起见,将其添加为元标记

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

<强>无论其

很可能你在数据库中有一些duff字符,其中像ISO-8859-1这样的东西已被篡改为UTF-8,非常糟糕。在这种情况下,您会注意到£之类的内容,其中您实际需要的是£(因为UTF-8字符包含的数据多于ISO-8859-1字符,如果你不小心,额外的数据可以成为一个额外的角色。

在这种情况下,最好的办法是清理数据库(你可能会对UPDATE table SET field = REPLACE(field, '£', '£')执行常见的“错误”),然后将整个kaboodle转换为UTF-8(如上所述)以避免问题反复出现。

答案 1 :(得分:0)

为避免出现此类字符,

  1. 设置表单的字符集。 HTML表单具有charset属性和值。您可以使用UTF-8
  2. 通过PHP或使用META标签为文档设置Charset(但这仅适用于输出)
  3. 为数据库表设置Charset
  4. 获取一个类/函数来进行ascii字符转换,作为数据过滤和转义的一部分