当我将一些用unicode编写的文本插入数据库时,它们会变成问号。数据库编码设置为utf-8。还有什么可能不正确?当我检查phpmyadmin时,只有插入的问号!插入数据库后,Unicode字符会成为问号
这是我用来连接到数据库的代码:
当我将一些用unicode编写的文本插入数据库时,它们会变成问号。数据库编码设置为utf-8。还有什么可能不正确?当我检查phpmyadmin时,只有插入的问号!插入数据库后,Unicode字符会成为问号
这是我用来连接到数据库的代码:
是您所插入的UTF-8编码过的文本?或者你的PHP文件不是UTF-8?你有没有将MySQL客户端连接设置为UTF-8?
如果没有,那么这可能是问题的原因。
你怎么知道成为问号?你看到它们是PHP页面中的问号,输出数据库字段时还是像phpmyadmin这样的软件?
无论哪种方式,问题可能是您的网页编码,而不是数据库的编码。确保添加以下行:
header('Content-Type: text/html; charset=utf-8');
我也在phpmyadmin和网站上看到了问号。 – 2010-07-31 11:57:02
您使用的字体是重要的信息,可以帮助解决这种情况 – stillstanding 2010-07-31 12:02:13
我使用格鲁吉亚的Unicode。字体名称是Sylfaen。 – 2010-07-31 12:04:26
//first make sure your file produce utf-8 chars
header('Content-Type: text/html; charset=utf-8');
//make sure with your spelling
//write
mysql_query("SET CHARSET utf8");
//instead of
mysql_query("SET CHARACTER SET utf8");
//for some reasons
mysql_query("SET CHARSET SET utf8");
//works on some servers and for other servers not.i am not sure why?
//try using mysql_set_charset("utf8"); only without mysql_query("SET CHARSET utf8");
//for me i had the same issue with my server
//when i used mysql_set_charset("utf8"); only --> the problem solved
//again make sure with your spelling and try again
很抱歉,但你都错了.. 我的朋友国王朱利安你刚刚执行:
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET CHARSET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'"); //This statement does the job!!! ;)
有一个愉快的一天!
您使用哪个模块与MySQL进行通信? mysql,mysqli,pdo-mysql,...?数据也是正确的utf-8编码?您究竟将哪些字符视为问号? – VolkerK 2010-07-31 11:52:28
我加了mysql_query(“SET NAMES'utf8'”);在mysql_select_db之后,问题解决了! – 2010-07-31 13:17:21
您可能希望查看http://uk3.php.net/manual/en/function.mysql-set-charset.php – 2010-07-31 14:52:40