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 adodb连接不同数据库
Mar 19 PHP
PHP 函数学习简单小结
Jul 08 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
PHP支付宝当面付2.0代码
Dec 21 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 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实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
php动态变量定义及使用
2015/06/10 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
JS实现滑动插件
2020/01/15 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
Numpy之random函数使用学习
2019/01/29 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
python 变量初始化空列表的例子
2019/11/28 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
几个人围成一圈的问题
2013/09/26 面试题
面向对象设计的原则是什么
2013/02/13 面试题
Prototype是怎么扩展DOM的
2014/10/01 面试题
员工拾金不昧表扬信
2014/01/09 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
委托证明范本
2014/11/25 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
结婚纪念日感言
2015/08/01 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
javascript之Object.assign()的痛点分析
2022/03/03 Javascript