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开发文件系统实例讲解
Oct 09 PHP
php&amp;java(三)
Oct 09 PHP
php while循环得到循环次数
Oct 26 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
php生成图片验证码的方法
Apr 15 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
PHP生成随机数的方法总结
Mar 01 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 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实现递归的三种基本方式
2020/07/04 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
使用python实现tcp自动重连
2017/07/02 Python
django用户登录和注销的实现方法
2018/07/16 Python
浅析Python 责任链设计模式
2020/09/11 Python
详解如何修改python中字典的键和值
2020/09/29 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
网络工程师职业规划
2014/02/10 职场文书
先进人物事迹材料
2014/12/29 职场文书
项目经理岗位职责
2015/01/31 职场文书
焦点访谈观后感
2015/06/11 职场文书
家属联谊会致辞
2015/07/31 职场文书
Python集合的基础操作
2021/11/01 Python