2011-11-08 62 views
0

数据IM与在这里工作是关闭的,它使用UTF8编码

我已经把我的数据库字段现在使用utf8_general_ci

无论出于何种原因页面的,我必须使用在下面的代码为了让它在数据库中正确显示重音字符:

mb_convert_encoding($name,'ISO-8859-15','utf-8'); 

这对我来说没有任何意义。为什么我必须在phpmyadmin在utf8中将数据转换为ISO-8859-15,数据是否在utf8中,数据库和表字段是否在utf8中?

回答

2

您很可能没有将您的数据库连接设置为UTF-8,因此您的数据库期望您发送ISO-8859编码数据。见http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

+0

字符集客户端\t UTF8 (全球价值)\t LATIN1 字符集连接\t UTF8 (全球价值)\t LATIN1 字符集数据库\t LATIN1 字符集的文件系统\t二进制 字符集的结果\t UTF8 (全球价值)\t latin1 字符集服务器\t latin1 字符集系统\t utf8 – scarhand

+0

看起来li ke一些变量设置为latin1,即时假设这是你的意思?我无法在INI中找到哪里去改变它... – scarhand

+1

对于每个新的连接,连接后,发出查询'SET NAMES utf8'或使用['mysql_set_charset'](http://www.php.net/manual /en/function.mysql-set-charset.php)。由于您不能更改生产中的ini设置并不罕见,因此这是最便携的方法。 – deceze

相关问题