PHP和MySQL中的字符编码问题

时间:2009-12-06 14:04:31

标签: php mysql character-encoding

当我使用phpMyAdmin直接在MySQL中运行查询时,它允许(长划线,而不是正常-),但是当我从我的PHP代码运行此查询时,它将它们转换为{{ 1}}。

如果您编码 - 它将来–(在JavaScript中)。 %E2%80%93变为%E2â变为%80变为%93。我不明白当我在phpMyAdmin中运行查询时它将数据保存为,但是当我在我的PHP代码中运行查询时,它就不能按照我想要的方式工作。

3 个答案:

答案 0 :(得分:1)

您在表格中使用哪种字符编码?在php中连接到DB后尝试运行:

mysql_query('SET NAMES utf8'); //if you use utf-8

答案 1 :(得分:0)

也许phpMyAdmin引擎可以将长划线转换为普通破折号?

答案 2 :(得分:0)

您可能缺少将HTML标记放在HTML上,是否要在HTML文档的头部编写下一行?

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

否则,浏览器会将其解释为ISO-8859-1。

您应该在数据库,连接和html文档的任何地方使用相同的编码。

为了确保你有一个utf-8表,运行下一个语句,并在结尾处检查 CHARSET = utf8

 SHOW CREATE TABLE tableName;