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 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
?算你??的 PHP 程式大小
Dec 06 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
PHP笔记之:基于面向对象设计的详解
May 14 PHP
dedecms中使用php语句指南
Nov 13 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
浅谈php错误提示及查错方法
Jul 14 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
PHP上传图片、删除图片简单实例
Nov 12 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
PHP底层运行机制与工作原理详解
Jul 31 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
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
许愿墙中用到的函数
2006/10/07 Javascript
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
通过代码实例了解Python sys模块
2020/09/14 Python
python实现无边框进度条的实例代码
2020/12/30 Python
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
拉歌口号大全
2014/06/13 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
初中毕业感言300字
2015/07/31 职场文书
小学信息技术教学反思
2016/02/16 职场文书
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python