0

尽管数据库和表设置为 utf8_general_ci 的排序规则,但仍从开头为空白的 textareas 插入 MySQL 表。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />在页面的头部做插入。我没有在同一个 MySQL 安装上遇到其他数据库/表的这个问题,这些设置为 latin1_swedish_ci 的默认排序规则。

我可以在建立 MySQL 连接后解决这个问题mysql_query("SET NAMES 'utf8'");,但是我想知道为什么会发生这种情况,尽管将表设置为 utf-8 并且在页面中将字符集设置为 utf-8。

4

3 回答 3

1

您需要正确初始化连接,utf8除非您可以以某种方式设置默认值,这意味着SET NAMES是强制性的。

如果您正在使用一些基于 1990 年代风格mysql_query的应用程序,它在代码库中的随机点打开和关闭连接,而没有任何适当的框架,您可能很难跟踪所有这些。

于 2013-11-15T01:39:02.457 回答
0

I didn't notice it before, but the textareas contained &nbsp; Removing that fixes the issue and I don't need to use mysql_query("SET NAMES 'utf8'");

于 2013-11-15T02:02:25.993 回答
0

your php/html file/s should have utf-8 encoding. your mysql database and table/s as well collation utf-8. however, you can try then to make test inserts from your php file not with submitted html-form-data just to see if it's a php or a html/form/browser problem.

于 2013-11-15T01:53:49.657 回答