在下一台在国外的服务器,是Linux英文版的,在部分网页程序上往mysql数据库中插入,更新中文数据的时候,不管输入什么,都会变成个?问号.输入几个字符,变几个问号.环境:
Linux:Centos5.2英文版
php:5.0
mysql:5.0
网页文件编码:UTF-8
mysql字符集:UTF-8 Unicode (utf8)
链接校对:utf8_unicode_ci在下的测试结果是,在没有在mysql的查询语句前加入mysql_query("SET NAMES UTF8")的,皆会出现显示的错误.在不加mysql_query("SET NAMES UTF8")这句的前提下,是有办法可以解决显示问题的,我想,或许是mysql.cnf或者php.conf等配置文件中编码格式的设置不当,或者我的mysql字符集的设置不当.请教各位高手,如何解决这问题!?
Linux:Centos5.2英文版
php:5.0
mysql:5.0
网页文件编码:UTF-8
mysql字符集:UTF-8 Unicode (utf8)
链接校对:utf8_unicode_ci在下的测试结果是,在没有在mysql的查询语句前加入mysql_query("SET NAMES UTF8")的,皆会出现显示的错误.在不加mysql_query("SET NAMES UTF8")这句的前提下,是有办法可以解决显示问题的,我想,或许是mysql.cnf或者php.conf等配置文件中编码格式的设置不当,或者我的mysql字符集的设置不当.请教各位高手,如何解决这问题!?
+-------+----------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
------------------+
| test | CREATE TABLE `test` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`class` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`age` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci+-------+----------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
------------------+
1 row in set (0.02 sec)
检查你插入表的字段与表字符集是否一致
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
function query($sql,$con){
mysql_query("set names utf8",$con);
return mysql_query($sql,$con);
}
mysql_query("SET NAMES UTF8")
MySQL 中文显示乱码