文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程PHP用php实现gb2312和unicode(UTF-8)间的编码转换
精品推荐
特别推荐
·菜鸟学PHP之Smarty入门
·PHP环境安全配置教程
·PHP入门指导:如何学习PHP?
·Php+Mysql注入专题
·PHP:实现给上传图片加水印的程序代码
·PHP动态网站开发中常用的8个小技巧
·PHP初学者:配置Apache服务器并且设置DNS
·初学PHP指导:php.ini 配置详细选项
·好文分享:PHP入门的学习方法
·急速搭建属于自己的Discuz!6论坛
热点TOP10
·菜鸟学PHP之Smarty入门
·傲慢与偏见 程序员想让HR知道的七件事
·升级PHP5的理由:PHP4和PHP5性能对比
·PHP4将结束更新并在明年退出历史的舞台
·jdk1.6环境搭建netbeans的中文乱码
·关于Html嵌入打成jar包的Applet方法
·学习java的一些好的书籍介绍
·WEB开发中Spring AOP实际应用一例
·Java Server Faces建立交互式WEB站点
·利用Java Servlets 2.4实现过滤

用php实现gb2312和unicode(UTF-8)间的编码转换

日期:2008年5月26日 作者: 查看:[大字体 中字体 小字体]


下面的例子是将 gb2312 转换为 uft-8 这种形式
php4.3.1以后的iconv函数很好用的,只是需要自己写一个uft8到unicode的转换函数
查表(gb2312.txt)也行

<?
$text = "电子书库";
preg_match_all("/[\x80-\xff]?./",$text,$ar);
foreach($ar[0] as $v)
  echo "&#".utf8_unicode(iconv("GB2312","UTF-8",$v)).";";
?>
<?
// utf8 -> unicode
function utf8_unicode($c) {
  switch(strlen($c)) {
    case 1:
      return ord($c);
    case 2:
      $n = (ord($c[0]) & 0x3f) << 6;
      $n += ord($c[1]) & 0x3f;
      return $n;
    case 3:
      $n = (ord($c[0]) & 0x1f) << 12;
      $n += (ord($c[1]) & 0x3f) << 6;
      $n += ord($c[2]) & 0x3f;
      return $n;
    case 4:
      $n = (ord($c[0]) & 0x0f) << 18;
      $n += (ord($c[1]) & 0x3f) << 12;
      $n += (ord($c[2]) & 0x3f) << 6;
      $n += ord($c[3]) & 0x3f;
      return $n;
  }
}
?>

下面的例子是利用php将uft-8这中编码转换为gb2312.

<?php
$str = "TTL&#20840;&#22825;&#20505;&#33258;&#21160;&#32858;&#28966;";
$str = preg_replace("&#([0-9]{1,5});", "\".u2utf82gb(\\1).\"", $str);
$str = "\$str=\"$str\";";
eval($str);
echo $str;
function u2utf82gb($c){
    $str="";
    if ($c < 0x80) {
         $str.=$c;
    } else if ($c < 0x800) {
         $str.=chr(0xC0 $c>>6);
         $str.=chr(0x80 $c & 0x3F);
    } else if ($c < 0x10000) {
         $str.=chr(0xE0 $c>>12);
         $str.=chr(0x80 $c>>6 & 0x3F);
         $str.=chr(0x80 $c & 0x3F);
    } else if ($c < 0x200000) {
         $str.=chr(0xF0 $c>>18);
         $str.=chr(0x80 $c>>12 & 0x3F);

[1] [2] [3] [4] 下一页 




上一篇:PHP Shell的编写(改进版)

下一篇:使用PHP程序来保护你的flash作品

相关文章:
·如何实现局域网打印机共享
·新收集200多种美化QQ空间的透明Flash
·转换MP4/3GP格式的至尊法宝---MP4/RM转换专家
·建立自由的会计日期的报表--1.4.让报表处理期初和期末之间的数据
·DVD转换MPEG-4三部曲之一
·利用word将PDF转换DOC文件的方法
·3GP手机视频转换工具WinAVI
·水晶报表的jsp实现
·MPEG、RM、WMV电影文件格式转换指南
·用Excel实现定时提醒
相关软件:
·RM转换精灵V6.3
·MP4/RM转换专家V9.7 Build 4660 白金版
·WisMencoder(视频压缩、转换软件)V1.99 正式版
·3GP转换器 V2.5
·Ultra RM Converter(Real文件转换分割,合并)V3.3.0916 汉化版
·视频转换大师(WinMPG Video Convert)V6.9.0.0 专业版
·Video Convert Master(转换,分割,合并视频)V8.0.5.20 汉化版
·TCP-IP详解卷2:实现
·DVD转换专家 V3.1 Build 140 白金版
·豪杰超级视频转换工具V2.0

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot