几种解决php+mysql中uft-8中文编码乱码的办法

  PHP+MySQL的乱码问题我们都遇到过,今天就这个问题提出我的一些解决方法:
 
1.  首先是HTML页面的编码设置,一般在页面的<head></head>中要添加一句代码:
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
这是保证页面的编码是utf-8的格式。
 
此外,如果你用的是notepad++,则可以选择编码:格式 ——> 以UTF-8格式编码   ,当然,选择后也要加上上面的那句代码。
 
2.  然后是PHP页面的编码设置,在代码开始出加入一行:
header("Content-Type: text/html;charset=utf-8");
 
而在读写数据库时也要向数据库发出请求:
 
mysql_query("set character set 'utf8'");//读库
mysql_query("set names 'utf8'");//写库


当然发请求时,要在连接数据库之后。
 
3.  最后是数据库的编码设置,创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或“utf8_bin” ,当然选哪一个可以试试,哪一个可以就选哪个(我的两个都可以),创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci” 或“utf8_bin”, 如果该字段是存放英文或数字的话,默认就可以了。 (前后选择要一致)
相应的SQL语句,例如:
CREATE TABLE `test` (
`id` INT NOT NULL ,
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;


4.  PHP以附件形式保存文件的时候,文件名必须是GB2312编码, 否则,如果文件名中有中文的话,将是显示乱码。而在“另存为”时,可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8。

以上是本人的一些方法,仅供参考!

你可能感兴趣的:(几种解决php+mysql中uft-8中文编码乱码的办法)