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
Dec 13 PHP
mysql+php分页类(已测)
Mar 31 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
PHP 无限级分类
May 04 PHP
PHP实现常用排序算法的方法
Feb 05 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使用CURL模拟登录的方法
2015/07/08 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
vue.js实现备忘录功能的方法
2017/07/10 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
vue如何判断dom的class
2018/04/26 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
tensorflow之并行读入数据详解
2020/02/05 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
制药工程专业应届生求职信
2013/09/24 职场文书
广播节目策划方案
2014/05/23 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
泰山导游词
2015/02/02 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
高二英语教学反思
2016/03/03 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB