PHP通过iconv将字符串从GBK转换为UTF8字符集


Posted in PHP onJuly 18, 2011

1. iconv()介绍
iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。例如:从GB2312转换为UTF-8。
iconv函数在php5中内置,GB字符集默认打开。
2. iconv()错误
iconv在转换字符”—”到gb2312时会出错,解决方法是在需要转成的编码后加 “//IGNORE”,也就是iconv函数第二个参数后.如下:

iconv("UTF-8", "GB2312//IGNORE", $data)

ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
3. iconv()例子
例1:
<?php 
echo $str= ‘你好,这里是卖咖啡!'; 

echo '<br />'; 

echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 

echo '<br />'; 

echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 

print_r(iconv_get_encoding()); //得到当前页面编码信息 

echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 
?>

例2:
如果你的PHP文件是UTF-8编码的,那么下面的代码就可以正确输出:
<?php 
$str='我爱百度'; 

$utf=''; 

for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1))); 

echo $utf; 
?>

如果你的PHP文件是GB的,那么下面的代码可以工作:
<?php 
$str='我爱百度'; 

$str=iconv("GBK", "UTF-8", $str); 

$utf=''; 

for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1))); 

echo $utf; 
?>

以上情况下,程序输出的内容是:
%E6%88%91%E7%88%B1%E7%99%BE%E5%BA%A6
PHP 相关文章推荐
php&amp;java(二)
Oct 09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
PHP区块查询实现方法分析
May 12 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
PHP中英混合字符串截取函数代码
Jul 17 #PHP
PHP操作数组的一些函数整理介绍
Jul 17 #PHP
如何突破PHP程序员的技术瓶颈分析
Jul 17 #PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 #PHP
PHP二维数组的去重问题解析
Jul 17 #PHP
简单的PHP多图上传小程序代码
Jul 17 #PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 #PHP
You might like
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
jquery实现倒计时效果
2015/12/14 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
js截取字符串功能的实现方法
2017/09/27 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python切图九宫格的实现方法
2019/10/10 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
Python数据正态性检验实现过程
2020/04/18 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
上海微创软件面试题
2012/06/14 面试题
Linux面试题LINUX系统类
2014/11/19 面试题
优秀小学生家长评语
2014/01/30 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
社区科普工作方案
2014/06/03 职场文书
法人委托书
2014/07/31 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
python OpenCV学习笔记
2021/03/31 Python