网站开发笔记【二】php的乱码问题解决

php乱码问题主要是由于中文的编码问题导致的,中文的编码一般用到的以gbk,utf8居多。

为了使中文编码不再乱码,解决方案如下:

1.在php中加上header("Content-type: text/html; charset=utf-8");这句话一定要在php的<?php 标记之后的第一句话开始。

<?php
header("Content-type: text/html; charset=utf-8");

//added code 


?>

2.设置数据库连接为utf-8编码,在操作数据库之前,这样声明

<?php
header("Content-type: text/html; charset=utf-8");

//code

mysql_query("set names ‘utf8‘");

//数据库操作
....
?>

 

3.数据库的编码设置为utf-8(以mysql为例子)

查询字符集的方法:

 

我们在更改数据库字符集的时候这样做:1.拥有数据库配置文件的修改权限(可以修改my.ini):

如:在my.ini文件中找到下面的配置:

  default-character-set = utf8
      character_set_server =  utf8

 

2.没有修改my.ini的配置权限(一般是在云主机上)

可以在phpAdmin中这样设置:

 

或者是执行sql命令:

  mysql> SET character_set_client = utf8 ;
     mysql> SET character_set_connection = utf8 ;
     mysql> SET character_set_database = utf8 ;
     mysql> SET character_set_results = utf8 ;
     mysql> SET character_set_server = utf8 ;
     mysql> SET collation_connection = utf8 ;
     mysql> SET collation_database = utf8 ;
     mysql> SET collation_server = utf8 ;

 

最后,如果在进行上述的操作,即:数据库的编码是utf8,数据表的编码是utf8,数据表字段的编码也是utf8,

这样仍然出现乱码的原因可能是在数据库连接的时候出现问题(数据库连接可能需要外部传入的参数,这个参数的编码也很重要)

这样的话我们要这样设置:

SET NAMES ‘utf8‘;

及在数据库执行操作之前加上这么一句:它的作用等同于:

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。