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和ACCESS写聊天室(二)
Oct 09 PHP
PHP编程之高级技巧——利用Mysql函数
Oct 09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
php编程实现获取excel文档内容的代码实例
Jun 28 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
Web程序工作原理详解
Dec 25 PHP
php批量删除超链接的实现方法
Oct 19 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
php+ajax注册实时验证功能
Jul 20 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
python实现大文件分割与合并
2019/07/22 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
virtualenv介绍及简明教程
2020/06/23 Python
学python爬虫能做什么
2020/07/29 Python
python实现移动木板小游戏
2020/10/09 Python
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
table不让td文字溢出操作方法
2022/12/24 HTML / CSS