您的位置:首页 > 编程语言 > PHP开发

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

2014-10-13 21:38 627 查看
  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。

以上是本人的一些方法,仅供参考!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: