二招解决php乱码问题

首页 > 网络编程 > PHP编程 > php技巧 更新日期: 2016-02-07
PHP的乱码问题已经说了N+1遍了,但还是经常看到新手不知道该如何解决php乱码问题,在此本人再重新给总结一下,希望对新手有点帮助
php网页出现乱码一般是在建立数据库时用的编码和php网页的编码不同造成的,
用phpmyadmin建立的数据库如果你不指定编码他默认是latin1_swedish_ci 编码,既瑞典语不区分大小写,而我们中国做的网页不是GBK就是GB2312编码,这样不出现乱码才怪.
1,建立数据库时指定编码.

在此再唠叨一下常用的编码,免的新手又迷茫:
如果你做的是简体中文网页,那么你在建立数据库时用GB2312编码,gb2312_chinese_ci.
如果你做的是繁体中文网页,那么你建立数据库时要用gib5编码, big5_chinese_ci
如果你做的网页有简体也有繁体中文,那么推荐你用GBK编码,gbk_chinese_ci . GBK包含的字码比GB2312要多,当然繁体也在其中.
如果你做的是多国语言网页,那么推荐你用UTF-8编码 . mysql中有二种utf8编码可供选择 : utf8_unicode_ci与utf8_general_ci 笔者一般用utf8_general_ci ,关于这二种编码的区别,请参考本站的另一篇文章: Mysql中校对集utf8_unicode_ci与utf8_general_ci的区别
我们用UTF-8编码为例建立数据库如图:

二招解决php乱码问题
 

2,用php连接数据库时用mysq_query 设定一下编码
语法: mysql_query("SET NAMES 'utf8'");
例如:
代码如下:

$conn=mysql_connect('127.0.0.1','root','123456');
mysql_query("set names 'utf8'",$conn); //解决乱码
mysql_select_db('test1',$conn);

一般情况下只要你做好了这二步,你的程序是不会出现乱码的
二般情况:
二般情况一般出现的不多,多出现在做的程序语言比较多,比如有时做utf8的,有时做gb2312的,有时又要做big5的网页,用IDE建立的.php文件编码和程序要显示的编码不同而引起的.
比如,我上次做了个gb2312的简体中文网页,现在老板又有吩咐要做个gbi5网页,但我的ide用的却是gb2312的编码
就拿我常用的IDE Dreamweaver来说吧

二招解决php乱码问题
 

ide新建的网页是gb2312,而我却把建好的网页改成big5的了,这样怎么会不出现乱码呢,解决的方法很简单,重新另存为一下,指定一下编码就OK了,
如果还搞不定,那么在网页头部加一行http头信息
header("Content-Type:text/html;charset=utf-8");
注意:在发送header头信息时header前面不可以有任何输出,包括空格在内.
好了写了这么多,快看看你的程序属于哪个情况引起的乱码吧.

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • ZendFramework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
    这篇文章主要介绍了Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法,详细分析了Zend_Mail组件实现邮件发送的具体步骤,并给出了标题乱码的解决方法,需要的朋友可以参考下本文实例讲述了Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法.分享给大家供大家 ...
  • php的GD库imagettftext函数解决中文乱码问题
    这篇文章主要介绍了php的GD库imagettftext函数解决中文乱码问题,可通过将中文字符串转为utf-8格式来解决,需要的朋友可以参考下本文实例讲述了php的GD库imagettftext函数解决中文乱码问题的方法.分享给大家供大家参考.具体如下: 使用imagettftext写中文时,常出现乱码问题.解决方法是将中文字符串转为utf-8格式即可.具体 ...
  • 在PHP中PDO解决中文乱码问题的一些补充
    在PHP中PDO解决中文乱码问题的一些补充
    前两天了解了一下PDO连接数据库的相关资料,配置相关在网路上都有很多相关资料,我在这里说说解决中文乱码显示问题我的环境是appsver包, 在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYSQL_ATTR_INIT_COMMAND => " ...
  • 解决JavaJ2EE乱码问题的方法
    这篇文章主要为大家详细介绍了解决Java J2EE乱码问题的方法的相关资料,需要的朋友可以参考下乱码是j2ee中一个比较常见的问题.遇到一两个问题的情况下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")来解决.遇到多的情况下 ...
  • Oracle数据库使用sqlplus时的连接错误与方向键乱码解决
    这篇文章主要介绍了Oracle数据库使用sqlplus时的连接错误与方向键乱码解决方法,实例环境基于Linux操作系统,需要的朋友可以参考下连接错误安装好以后,我登录企业后台(http://ubuntu:1158/em)报错,用sqlplus连接oracle也报错.一,遇到的错误如下1,ORA-12505: TNS:listener does not cur ...
猜你喜欢