【发布时间】:2011-09-22 20:58:22
【问题描述】:
基本上,我有一个表格,餐馆老板可以填写该表格(除其他事项外)要求提供公司名称。
如果输入类似 "Foobar Café" 的内容,它会以 "Foobar Café" 的形式存储在 MySQL 数据库中。为什么这样做?
HTML 页面和数据库表都设置为 UTF-8 编码(“business_name”字段的排序规则为“utf8_unicode_ci”)。这不应该照顾一切吗?究竟是什么原因导致特殊字符 "é" (&etilde;) 在数据库中存储为 "é"?没有意义。
【问题讨论】:
-
如果您向前端用户显示相同的内容,它将完美显示。出于某种特定原因,您是否希望它们以精确的波浪线/尖线存储在数据库中?
-
你试过调试PHP吗?让 AJAX 返回 POST/GET 变量并检查它在 firebug 中的内容。这会给你一个提示,它是发生在 HTML 和 PHP 之间,还是发生在 PHP 和数据库之间。
-
在表单“action”属性调用的PHP页面上,我直接回显了POST的内容,它正确显示为“Café”。所以问题一定出在将它存储到 MySQL 数据库中。希望有帮助。此外,当添加新业务时,会向站点管理员发送一封电子邮件,并且电子邮件中的名称显示不正确的字符。这就是为什么我需要数据库中的正确信息。我为什么不呢?
-
其他有趣的事情...我将公司名称输出到一个 .txt 文件中,但那里也不正确 (dbfl.xylotdesign.com/vendor/input.txt)!那是怎么回事?
-
此外(对多个 cmets 感到抱歉,但编辑有时间限制),电子邮件是使用 POST 数据发送的,而不是来自数据库数据。所以看来问题出在数据的发送上。根据 Firefox,带有表单的页面具有 UTF-8 编码 (dbfl.xylotdesign.com/vendor/register.php)。我被难住了。
标签: php mysql html forms special-characters