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 相关文章推荐
提问的智慧(2)
Oct 09 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
php session的锁和并发
Jan 22 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
Smarty变量用法详解
May 11 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
PHP自定义多进制的方法
Nov 03 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 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
解析isset与is_null的区别
2013/08/09 PHP
PHP引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
PHP小技巧之函数重载
2014/06/02 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
Python numpy 常用函数总结
2017/12/07 Python
python实现简单加密解密机制
2019/03/19 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
python正则-re的用法详解
2019/07/28 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
python 项目目录结构设置
2020/02/14 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
linux面试题参考答案(2)
2015/12/06 面试题
一些关于MySql加速和优化的面试题
2014/01/30 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
教师工作表现评语
2014/12/31 职场文书
小学少先队活动总结
2015/05/08 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
详解Oracle块修改跟踪功能
2021/11/07 Oracle
Win11更新失败并提示0xc1900101
2022/04/19 数码科技