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 相关文章推荐
从MySQL数据库表中取出随机数据的代码
Sep 05 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
php中常用的预定义变量小结
May 09 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
php session劫持和防范的方法
2013/11/12 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
JS读取XML文件示例代码
2013/11/15 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
JS中Location使用详解
2015/05/12 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
幼师专业求职推荐信
2013/11/08 职场文书
专业销售业务员求职信
2013/11/18 职场文书
霸王洗发水广告词
2014/03/14 职场文书
难忘的一课教学反思
2014/04/30 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
放飞理想演讲稿
2014/09/09 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
终止劳动合同协议书
2014/10/05 职场文书
防暑降温通知书
2015/04/27 职场文书
2015年国庆节寄语
2015/08/17 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
nginx配置限速限流基于内置模块
2022/05/02 Servers