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 相关文章推荐
如何过滤高亮显示非法字符
Oct 09 PHP
PHP动态变静态原理
Nov 25 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
php文件缓存类用法实例分析
Apr 22 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
Yii 2中的load()和save()示例详解
Aug 03 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 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里的中文变量说明
2011/07/23 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php生成验证码函数
2015/10/20 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
JS location几个方法小姐
2008/07/09 Javascript
鼠标经过的文本框textbox变色
2009/05/21 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
js打造数组转json函数
2015/01/14 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
Python 正则表达式实现计算器功能
2017/04/29 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
python如何读写json数据
2018/03/21 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
python实现大文件分割与合并
2019/07/22 Python
django迁移数据库错误问题解决
2019/07/29 Python
python 导入数据及作图的实现
2019/12/03 Python
python装饰器代替set get方法实例
2019/12/19 Python
2014年高中班主任工作总结
2014/11/08 职场文书
幼师中班个人总结
2015/02/12 职场文书
2015年中个人总结范文
2015/03/10 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL