2012-09-12 48 views
9

我想用PHP将♥插入到MySQL表中。它来自一个输入字段。不能在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 

结果也而不是♥。

关于是什么原因造成的任何想法?

+5

尝试关注[在Web应用程序中处理Unicode前后](http://kunststube.net/frontback/) – deceze

+0

尝试http://stackoverflow.com/questions/7781103/sql-server-set-字符集不排序 – Sathish

回答

23

这是因为表格列中定义的不兼容character set and collation

尝试changing character set您的表或列UTF8。在你的PHP文件

ini_set('default_charset', 'utf-8'); 

,并设置:

​​

ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8; 
+0

哦!我只是改变了表格的字符集,而不是列...将列更改为utf8,现在一切正常!谢谢! – Elias

+0

不客气! :) – Omesh

0

试试这个

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

和赤在你的数据基础排序规则utf8_general_ci

+0

default_charset和元标记将无法正常工作,因为我看到'?'在phpMyAdmin中。 – Elias

+0

比尝试通过ini_set()设置字符编码 –