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图片上传程序
Mar 27 PHP
基于Zend的Captcha机制的应用
May 02 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
php导出excel格式数据问题
Mar 11 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
分享下php5类中三种数据类型的区别
Jan 26 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
Mar 07 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
PHP7 foreach() 函数修改
Mar 09 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读写文件的方法(生成HTML)
2006/11/27 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现简单购物商城
2016/05/21 Python
Python错误处理操作示例
2018/07/18 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
详解Python设计模式之策略模式
2020/06/15 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
文秘自荐信
2013/10/20 职场文书
餐饮主管岗位职责
2013/12/10 职场文书
班主任新年寄语
2014/04/04 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
以权谋私检举信范文
2015/03/02 职场文书
民间借贷被告代理词
2015/05/23 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android