我使用的是CakePHP。我有:
在我的模板中设置了<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />。
Configure::write('App.encoding', 'UTF-8');已设置。
我的数据库使用utf-8编码(在database.php - (encoding=>'utf8')中,如果我手动输入中文字符,它们将被正确地存储;并且我可以毫无问题地输出它们。
此屏幕截图显示了输出:

数字1是我手动将中文字符粘贴到MYSQL数据库中时的结果(使用utf8_unicode_ci)。
4和5是当我从我的表单中发布中文字符时发生的事情-难以理解的胡言乱语。
表单编码为:
<form action="/controller/add" accept-charset="utf-8" id="ControllerAddForm" method="post">
所以它应该接受utf-8字符。我可以键入它们;它们在文本框中显示得很好,但我提交的任何内容都会变得非常糟糕。
有什么想法吗?
发布于 2011-11-18 01:55:55
您是否还在database.php中将数据库连接设置为UTF-8
对于MySQL,这将是:
'encoding' => 'utf8' // no hyphen发布于 2011-11-20 13:12:20
像mark和Brian said一样,检查POST标题和数据库字符集中的Accept-Encoding参数。
发布于 2011-11-30 00:33:45
https://stackoverflow.com/questions/8171897
复制相似问题