处理字符集(用户输入 - > Php - > Mysql,然后再返回)

时间:2012-04-03 17:22:09

标签: php mysql character-encoding

请到这里查看我的问题,它位于页面左侧的卡片内: http://gumonshoe.net/magic/card/?card=258

撇号正在转换为ascii,它看起来像是来自各种外国文本格式。我已经看过这个,但由于我使用的是美式英语,这可能是基本的默认值,我无法重现错误来测试它。

我认为必须有一个正确的方法来传递角色,我只是不知道它是什么。

我正在寻找的答案将告诉我在这个链条中哪些东西搞砸了。

User Form on web page for input >>
javascript method >>
php >>
mysql

据我所知,这是在PHP中发生的。到达那里时,它在数据库中肯定是错误的。

我最满意的解决方案是从现在开始修复所有内容,而不是修补数据库中的内容,因为我可以轻松地找到/替换这些实例。

感谢所有帮助。搜索给了我不一样的结果,但我找不到任何与我的问题完全相同的东西,并从基础知识中解释出来。

再次,非常感谢!

是否与此有关:

mb_internal_encoding

1 个答案:

答案 0 :(得分:1)

它不会发生在一个地方,它总是发生在两端之间的通信中。那可能是浏览器< - > php或php< - > mysql

之间的通信

您应该确保在html标头中有一个charset元标记,例如:

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

这样,您的Web浏览器就知道在向服务器发布数据时要使用的字符集(以及在呈现页面时使用的字符集)。

当连接到mysql时,你应该确保你的连接在两端都说同一个字符集,并且它应该与web浏览器使用的字符集相同:

mysql_query('set names utf8');

现在,你应该没事。