尽管整理了utf8_general_ci,MySQL表仍将空格设置为Â

时间:2013-11-15 01:33:13

标签: php mysql

尽管将数据库和表设置为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

3 个答案:

答案 0 :(得分:1)

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

如果您使用的某些基于20世纪90年代样式的基于mysql_query的应用程序可以在代码库中的随机点打开和关闭连接,而没有任何适当的框架,那么您可能很难跟踪这些内容。

答案 1 :(得分:0)

你的php / html文件应该有utf-8编码。你的mysql数据库和table / s以及整理utf-8。但是,您可以尝试从您的php文件中进行测试插入,而不是使用提交的html-form-data来查看它是否是php或html / form / browser问题。

答案 2 :(得分:0)

之前我没有注意到,但textareas包含&nbsp;删除修复了该问题,我不需要使用mysql_query("SET NAMES 'utf8'");