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 相关文章推荐
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
php利用ZipArchive类操作文件的实例
Jan 21 PHP
php7 错误处理机制修改实例分析
May 25 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 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中使用临时表查询数据的一个例子
2013/02/03 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
怎样声明接口
2014/09/19 面试题
品质主管的岗位职责
2013/12/04 职场文书
百日安全生产活动总结
2014/07/05 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书
学习保证书
2015/01/17 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL