无法在 MySQL 表中插入 ♥ 字符
Posted
技术标签:
【中文标题】无法在 MySQL 表中插入 ♥ 字符【英文标题】:Cannot insert ♥ character in MySQL table 【发布时间】:2012-09-05 08:52:04 【问题描述】:我正在尝试使用 php 将 ♥ 插入到 mysql 表中。它来自输入字段。
该表的字符集是 utf8_general_ci,在 PHP 中,我在连接后立即使用 mysql_query("SET NAMES 'utf8'");
。
但是 ♥ 只是变成了 '?'插入时。
我也尝试将 ♥ 从 phpMyAdmin 插入表中,但它返回此错误:
Warning: #1366 Incorrect string value: '\xE2\x99\xA5' for column 'subject' at row 1
结果也是'?'而不是♥。
对造成这种情况的原因有什么想法吗?
【问题讨论】:
尝试关注Handling Unicode Front To Back In A Web App 试试***.com/questions/7781103/… 【参考方案1】:这是因为在表的列上定义的 character set and collation 不兼容。
尝试将您的表或列的changing character set 改为UTF8
。
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;
或
ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8;
【讨论】:
哦!我只是更改了表格的字符集,而不是列...将列更改为 utf8,现在一切正常!谢谢!【参考方案2】:试试这个:
ini_set('default_charset', 'utf-8');
在你的 php 文件中设置:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
并检查您的数据库以整理到 utf8_general_ci
【讨论】:
default_charset 和元标记不起作用,因为我看到了“?”在 phpMyAdmin 中。 比尝试通过ini_set()设置字符编码以上是关于无法在 MySQL 表中插入 ♥ 字符的主要内容,如果未能解决你的问题,请参考以下文章