【发布时间】:2011-04-26 15:30:19
【问题描述】:
我遇到了“£”字符的编码问题。 (问题:当从表单字段中发布“£”并进行插入时,MySQL 表中没有插入任何内容)。我已经检查了我的 PHP 代码头、服务器、MySQL 上的排序规则/字符集等上对 UTF-8 支持的所有内容。
我使用 MAMP 作为我的开发环境 (PHP 5.3.5)。
在我的生产服务器(商业主机)(PHP 5.2.6)上一切正常,所以我已经排除了我的代码的任何问题
但是,我想我已经找到了罪魁祸首:在比较两种环境时,我的开发服务器中缺少这一行:
_ENV["HTTP_ACCEPT_CHARSET"] ISO-8859-1,utf-8;q=0.7,*;q=0.3
但是,我无法看到 php.ini 中的任何内容来更改它。有什么想法,还是我找错了树?
干杯
罗兰
【问题讨论】:
-
回复:“我的生产服务器上一切正常 [...] 所以我已经排除了我的代码的任何问题”:这是错误!您可能对某些环境设置有错误的依赖,而您幸运地在生产系统上得到了“正确”的设置。
-
HTTP
Accept-Charset标头来自客户端。您的浏览器可能在通信期间没有发送该标头,并且它忽略了来自服务器的Charset: UTF-8标头(您正在发送一个对吗?)并且浏览器正在发送它想要的任何东西。 -
附带问题,是否有必要让人们输入英镑'£'符号?你能不能把它硬编码或从下拉菜单中选择一个?然后你可以使用
£