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持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
php错误、异常处理机制(补充)
May 07 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
CI框架常用方法小结
May 17 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
Zend Framework常用校验器详解
Dec 09 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 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之第六天
2006/10/09 PHP
在PHP中执行系统外部命令
2006/10/09 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
Python3字符串学习教程
2015/08/20 Python
使用python实现tcp自动重连
2017/07/02 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
python实现图片筛选程序
2018/10/24 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
深入解析神经网络从原理到实现
2019/07/26 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
Python进度条的制作代码实例
2019/08/31 Python
python实现在线翻译
2020/06/18 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
中学家长会邀请函
2014/02/03 职场文书
2014年终个人总结报告
2015/03/09 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书