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中文本数据翻页(留言本翻页)
Oct 09 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
关于初学PHP时的知识积累总结
Jun 07 PHP
PHP 登录完成后如何跳转上一访问页面
Jan 14 PHP
php单例模式实现方法分析
Mar 14 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
PHP缓冲区用法总结
Feb 14 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
php DES加密算法实例分析
Sep 18 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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写MySQL数据 实现代码
2009/06/15 PHP
PHP中header用法小结
2016/05/23 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
js常见遍历操作小结
2019/06/06 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
python Flask实现restful api service
2017/12/04 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
教师自荐信
2013/12/10 职场文书
报社实习生自荐信
2014/01/24 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
新郎接新娘保证书
2015/05/08 职场文书
话题作文之学会尊重
2019/12/16 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python