`

php中gb2312跟unicode码的转换

    博客分类:
  • php
阅读更多
php中gb2312跟unicode码的转换
2008年01月06日 星期日 下午 09:55

<?php
// 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;
}
}

//gb2312转换为unicode
function gb2un($g)//传入gb2312字符串返回unicode码
{
preg_match_all("/[\x80-\xff]?./",$g,$ar);
$str = "";
foreach($ar[0] as $v)
{
   $str = $str."&#".utf8_unicode(iconv("gb2312","utf-8",$v)).";";
}
return $str;
}


//unicode ---> gb2312
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/u",$str,$r);
$ar = $r[0];
//print_r($ar);
foreach($ar as $k=>$v) {
    if(substr($v,0,2) == "%u")
      $ar[$k] = iconv("ucs-2","gb2312",pack("h4",substr($v,-4)));
    elseif(substr($v,0,3) == "&#x")
      $ar[$k] = iconv("ucs-2","gb2312",pack("h4",substr($v,3,-1)));
    elseif(substr($v,0,2) == "&#") {
//echo substr($v,2,-1)."<br>";
      $ar[$k] = iconv("ucs-2","gb2312",pack("n",substr($v,2,-1)));
    }
}
return join("",$ar);
}

//unicode转换为gb2312
function un2gb($y)//传入unicode码返回gb2312
{
return unescape($y);
}
?>
分享到:
评论

相关推荐

    unicode与GB18030(GB2312,GBK) 转换码表

    转换码表是用来进行不同编码间转换的关键工具,例如,如果你有一个使用GB18030编码的文本文件,而你的系统或程序只支持Unicode,那么就需要一个转换码表来将GB18030编码的文本转换成UTF-8或其他Unicode编码。...

    php网页中utf-8编码转换gb2312实用类

    每个汉字在GB2312中占据两个字节,但只能表示6763个常用汉字,不支持繁体字和其他非汉语言文字。 在实际的PHP网页开发中,由于用户数据来源的多样性,有时我们需要将UTF-8编码的数据转换为GB2312,反之亦然。这里...

    基于PHP的Unicode编码转换程序.zip

    1. **字符编码**:不同的字符编码代表了字符集的不同表示方式,如ASCII、ISO-8859-1、GB2312、GBK、UTF-8等。 2. **UTF-8**:最常用的一种Unicode编码,广泛应用于Web开发,可以表示所有Unicode字符,且对英文字符...

    批量字符编码转换工具 20070709

    比如utf8转gbk,gb2312转utf8,ansi转utf8,utf8 unicode 转换,utf8转换gb2312,utf16、utf32、utf8编码转换,gbk转换utf8,utf8 ascii转换。 2 强大正则表达式支持字符编码转换软件 是唯一同时支持用正则表达式匹配和...

    编码批量转换工具

    比如utf8转gbk,gb2312转utf8,ansi转utf8,utf8 unicode 转换,utf8转换gb2312,utf16、utf32、utf8编码转换,gbk转换utf8,utf8 ascii转换。 2 强大正则表达式支持字符编码转换软件 是唯一同时支持用正则表达式匹配和...

    gb2312编码转utf-8编码

    3. **转换编码**:使用编程语言提供的函数或库,如Python的`codecs`模块,将GB2312字节序列解码为Unicode字符串,再将该字符串按照UTF-8编码规则重新编码为字节序列。 4. **写入新文件**:最后,将转换后的字节序列...

    php GB2312转Big5

    综上所述,"php GB2312转Big5"这个主题涵盖了许多基础和高级的IT知识,包括字符编码理论、PHP编程实践以及处理编码转换问题的策略。理解和掌握这些知识对于任何涉及多语言处理的PHP开发者来说都是非常重要的。

    Unicode码Ascii码转换对照表

    用于在PHP无法使用 iconv 函数和 mb_string 库的情况下,实现GB2312与...包内附加一个UNICODE转换为GB2312的函数,看看里面的函数就明白了。 有了里面的两个bin文件(其实一个足矣),其它的就可以由各位大侠实现啦。

    字符串处理类:将GBK,UTF8字符串转化为Unicode编码的php类库.zip

    GBK是GB2312编码的扩展,主要用于简体中文,它是GBK编码集的简称,兼容GB2312,但增加了许多繁体字和其他语言的字符。UTF8则是一种变长的Unicode编码,使用1到4个字节来表示一个字符,对于ASCII字符(英文字符)只...

    php实现utf-8和GB2312编码相互转换函数代码

    在这个例子中,我们有两个函数,`get_utf8_to_gb()`和`get_gb_to_utf8()`,分别用于将UTF-8编码的字符串转换为GB2312编码,以及将GB2312编码的字符串转换为UTF-8编码。 `get_utf8_to_gb()`函数的工作原理如下: 1. ...

    PHP编码转换函数utf-gb-big5

    在PHP编程语言中,处理不同字符编码的转换是常见的需求,特别是当涉及到中文字符时,如GBK(GB2312)、Big5和UTF-8等。这些编码标准在中国大陆和台湾地区尤为常见。本篇文章将详细介绍如何在PHP中进行各种编码间的...

    PHP实现Unicode编码相互转换的方法示例

    本篇将详细解释如何使用PHP实现Unicode编码的转换,包括从Unicode编码到其他编码(如UTF-8、GBK等)以及从其他编码到Unicode编码的过程。 首先,我们来看`unicode_encode`函数,它的作用是将一个字符串从特定编码...

    PHP 解决utf-8和gb2312编码转换问题

    在PHP开发过程中,涉及到字符编码转换时,我们经常会遇到UTF-8和GB2312之间的转换问题。这两种编码标准分别代表不同的字符集,UTF-8是一种广泛使用的、支持多种语言的Unicode编码,而GB2312是中国大陆常用的一种简体...

    文本文件编码转换工具 gbk utf8 gb2312

    这样一来就出现了不兼容,因为在国内大家都是以GBK gb2312编的码 包括 17PHP.com 网站里的学习源码文件(我用的是77例中的) 和很多插件 论坛代码... ...Discuz!也是的 解决起来很简单,把它们的编码都改成 utf8 好了. ...

    基于PHP的UCenter Home 简体GB2312与UTF-8.zip

    在处理多语言环境时,字符编码的适配尤为关键,因此,了解如何在UCenter Home中处理简体GB2312与UTF-8之间的转换至关重要。 首先,GB2312与UTF-8是两种不同的字符编码标准。GB2312是中国大陆早期的简体中文编码,...

    基于PHP的UCenterHome简体GB2312与UTF-8源码.zip

    GB2312是中国大陆广泛使用的简体中文字符集,而UTF-8是一种支持多语言的Unicode编码方式。在UCenterHome中,为了兼容不同环境下用户的使用需求,可能同时存在这两种编码形式。在实际操作中,开发者需要处理编码转换...

    UTF-8与GB与 Big5之间的转换

    UTF-8、GBK(或GB2312)以及Big5都是广泛使用的字符编码标准,它们各有特点,适用于不同的应用场景。 UTF-8是一种变长的Unicode编码方式,它可以表示世界上几乎所有的字符。UTF-8最大的优点在于其兼容性,它在...

    PHP实例开发源码—UCenter Home 简体GB2312与UTF-8.zip

    在处理不同编码格式的数据时,需要进行编码转换,比如从GB2312转换到UTF-8,以确保在不同的环境下正确显示中文字符。在PHP中,可以使用`iconv()`或`mb_convert_encoding()`函数来实现编码转换。 5. **开发实践**:...

    PHP 不同编码的转换程序

    描述中提到的“GBK utf-8等大多都支持”,这表明了PHP的编码转换功能广泛应用于GBK(国内常用的简体中文编码)和UTF-8(国际化的Unicode编码)之间。UTF-8是目前最流行的编码格式,因为它能够表示Unicode中的所有...

Global site tag (gtag.js) - Google Analytics