[导读]自 MySQL 4.1 开始,对多语言的支持有了很大变化,相信许多人都遇到过那令人抓狂的乱码问题:在升级数据库或者将本地的数据导入到虚拟主机后,突然发现之前整齐的页面布满了各种奇怪的符号。
如果你遇到乱*问题,可以从下面几个问题逐步检查:
(1)检查你的文件存储编*是否和 meta 声明的一致,假如你的文件是按照 utf-8 编*存储,但是 meta 却声明为 gb2312 ,将导致乱*。
解决办法:将页面存储编*和 meta 声明保持一致。用记事本打开文件,“另存为”,下面有个选项是“编*”,选择和 meta 声明一致的编*方式。(提示:meta 的编*声明要放在 title 标签前面,否则容易导致页面空白。)
(2)检查你的数据库连接有没有设置连接方式(SET NAMES),MySQL 4.1 版本以后,如果你没有设置数据库连接方式,那么插入或者查询将出现乱*情况。
解决办法:在你的数据库连接后面(通常是在 mysql_connect 后面,执行任何查询之前)加上一句 :
mysql_query("SET NAMES utf8");
其中 utf8 需要根据你需要设置。
(3)检查你的页面编*、meta 声明、数据库连接方式(SET NAMES)是否一致,如果你的页面和meta设置为gb2312,但是却在程序中设置 SET NAMES utf8,同样会导致乱*。原因是如果页面设置为 gb2312 ,那么表单中的数据也是按照 gb2312 提交,但是程序却要求按照 utf8 去处理,结果自然是乱*。
解决办法:将页面编*、meta 声明、数据库连接方式(SET NAMES)保持一致,当然这里说的一致不是绝对的,如 MySQL 的 utf8 和页面中的 utf-8 是不一样的,具体要根据你的实际情况设置。
(1)检查你的文件存储编*是否和 meta 声明的一致,假如你的文件是按照 utf-8 编*存储,但是 meta 却声明为 gb2312 ,将导致乱*。
解决办法:将页面存储编*和 meta 声明保持一致。用记事本打开文件,“另存为”,下面有个选项是“编*”,选择和 meta 声明一致的编*方式。(提示:meta 的编*声明要放在 title 标签前面,否则容易导致页面空白。)
(2)检查你的数据库连接有没有设置连接方式(SET NAMES),MySQL 4.1 版本以后,如果你没有设置数据库连接方式,那么插入或者查询将出现乱*情况。
解决办法:在你的数据库连接后面(通常是在 mysql_connect 后面,执行任何查询之前)加上一句 :
mysql_query("SET NAMES utf8");
其中 utf8 需要根据你需要设置。
(3)检查你的页面编*、meta 声明、数据库连接方式(SET NAMES)是否一致,如果你的页面和meta设置为gb2312,但是却在程序中设置 SET NAMES utf8,同样会导致乱*。原因是如果页面设置为 gb2312 ,那么表单中的数据也是按照 gb2312 提交,但是程序却要求按照 utf8 去处理,结果自然是乱*。
解决办法:将页面编*、meta 声明、数据库连接方式(SET NAMES)保持一致,当然这里说的一致不是绝对的,如 MySQL 的 utf8 和页面中的 utf-8 是不一样的,具体要根据你的实际情况设置。