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 相关文章推荐
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 PHP
codeigniter框架批量插入数据
Jan 09 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
Mar 22 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
php中str_pad()函数用法分析
Mar 28 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
PHP数据对象映射模式实例分析
Mar 29 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表格的方法
2014/02/24 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
浅谈php命令行用法
2015/02/04 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php实现登陆模块功能示例
2016/10/20 PHP
PHP调用其他文件中的类
2018/04/02 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
对Django中内置的User模型实例详解
2019/08/16 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
韩国商务邀请函
2014/01/14 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
政风行风整改报告
2014/11/06 职场文书
中秋节晚会开场白
2015/05/29 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android