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 5.0创建图形的巧妙方法
Oct 12 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
探讨捕获php错误信息方法的详解
Jun 09 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 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 session处理的定制
2009/03/16 PHP
深入解析php之sphinx
2013/05/15 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
页面中js执行顺序
2009/11/09 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
深入理解python对json的操作总结
2017/01/05 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
关于numpy数组轴的使用详解
2019/12/05 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
运动会开幕式邀请函
2014/02/03 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
九九重阳节致辞
2015/07/31 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
导游词之吉林花园山
2019/10/17 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript