PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码


Posted in PHP onApril 08, 2013

老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱码的地方有php文件里面 ,数据库里面 存储 的编码 ,页面显示 ,数据传输 ):

1.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8,字段为 utf8_general_ci

数据库的设置:

在my.ini文件中查找:
[mysql]
default-character-set = utf8
[mysqld]
default-character-set = utf8
init_connect = 'SET NAMES utf8 '
全部设置为utf8
保存,重新启动mysql服务

2.在与数据打交道的时候mysql_query("set names 'utf8'");注意是:utf8,不是 utf-8

3.PHP的文件默认的编码是ANSI ,需要转换为UTF-8 ,至于怎么转换editplus就有这样的功能,“另存为”的时候有选择编码UTF-8 ,注意:不能选择:UTF-8 + BOM,如果选择这个了 ,你在处理session的时候就会出现问题,所以一定要注意.还有有的人在eclipse,Myeclipse,ZendStudio里面开发,eclipse里面默认的是ISO-8859-1,需要在“窗口 ”->“首选项 ”打开“首选项”窗口,在左侧“常规 ”->“工作空间 ”,在“文本文件编码 ”里面设置默认的编码为utf-8

4.就是PHP文件里面要说明:如<meta http-equiv="Content-Type" Content="text/html;charset=utf-8">

或者

<?php header('Content-Type:text/html;charset=utf-8');?> 

5.还有就是处理中文等双字节的时候也有可能出现乱码,PHP里面可以采用的有iconv,mb_convert_encoding来处理双字节,其余的可以参考PHP帮助手册

6.在补充一点(遗漏的一点),在你的程序里面你要知道数据之间的传递也有可能存在编码问题的,但是你又不知道传递过来的数据是采用的什么编码,在PHP里面提供了方法来处理的,下面是自己写的一个简单方法,可以参考一下

//编码转换  
        function display_fileencoding($filename)  
        {  
            if(extension_loaded("mbstring"))  
            {  
                $code=mb_detect_encoding($filename);//检测字符串编码  
                $filename=mb_convert_encoding($filename,"UTF-8",$code);//将编码$code转换为utf-8编码  
                return $filename;  
            }  
            else  
                die("请检查系统是否正确安装配置mbstring");  
        } 

要确保mbstring在你的php.ini中启用

7.保证以上几处编码一致就可以了!!数据库,网页输出都不会出现乱码了,如有不对的,请留言指出!!

PHP 相关文章推荐
通过对php一些服务器端特性的配置加强php的安全
Oct 09 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
php自定义加密与解密程序实例
Dec 31 PHP
浅谈PHP中output_buffering
Jul 13 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
php登录超时检测功能实例详解
Mar 21 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 #PHP
PHP If Else(elsefi) 语句
Apr 07 #PHP
PHP插入排序实现代码
Apr 04 #PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 #PHP
PHP常用的文件操作函数经典收藏
Apr 02 #PHP
精美漂亮的php分页类代码
Apr 02 #PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 #PHP
You might like
PHP与SQL注入攻击[二]
2007/04/17 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
js版本A*寻路算法
2006/12/22 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
javascript闭包入门示例
2014/04/30 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
跟老齐学Python之重回函数
2014/10/10 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
Python中的Django基本命令实例详解
2018/07/15 Python
Python命令行click参数用法解析
2019/12/19 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
机械设计及其自动化专业推荐信
2013/10/31 职场文书
八项规定整改方案
2014/02/21 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
工作收入证明范本
2015/06/12 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android