造成MySQL中文乱码原因很多,其中最重要的问题是字符集不匹配。MySQL默认使用的是Latin1字符集,而中文字符集应该使用utf8。
#查看当前MySQL字符集 SHOW VARIABLES LIKE 'character_set%';
若发现MySQL字符集为Latin1,还没有解决中文乱码问题,那就要考虑修改MySQL数据库字符集:
#修改MySQL数据库编码为utf8 ALTER DATABASE 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci;
一旦修改了MySQL数据库编码,还需要确保数据表及其字段的编码和数据库编码保持一致,否则还会出现MySQL中文乱码问题。
#修改数据表字段编码方式 ALTER TABLE 表名 MODIFY 字段名 类型 CHARACTER SET 字符集;
如果在代码中出现乱码问题,则需要在连接MySQL数据库时设置编码模式:
#在连接MySQL时设置utf8编码 $conn = mysql_connect("localhost", "username", "password"); mysql_select_db("dbname",$conn); mysql_query("SET NAMES 'utf8'",$conn);
总之在使用MySQL数据库时,大家都要注意字符集的匹配问题,确保所有的编码方式一致,就可以避免MySQL中文乱码问题啦。