`
lij2960
  • 浏览: 17615 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

PHP Unicode编码相互转换

    博客分类:
  • PHP
 
阅读更多
<?php
/**
* $str 原始中文字符串
* $encoding 原始字符串的编码,默认utf-8
* $prefix 编码后的前缀,默认"&#"
* $postfix 编码后的后缀,默认";"
*/
function unicode_encode($str, $encoding = 'utf-8', $prefix = '&#', $postfix = ';') {
    //将字符串拆分
    $str = iconv("UTF-8", "gb2312", $str);
    $cind = 0;
    $arr_cont = array();

    for ($i = 0; $i < strlen($str); $i++) {
        if (strlen(substr($str, $cind, 1)) > 0) {
            if (ord(substr($str, $cind, 1)) < 0xA1) { //如果为英文则取1个字节 
                array_push($arr_cont, substr($str, $cind, 1));
                $cind++;
            } else {
                array_push($arr_cont, substr($str, $cind, 2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row) {
        $row = iconv("gb2312", "UTF-8", $row);
    }

    //转换Unicode码
    foreach ($arr_cont as $key => $value) {
        $unicodestr.= $prefix . base_convert(bin2hex(iconv('utf-8', 'UCS-4', $value)), 16, 10) .$postfix;
    }

    return $unicodestr;
}

/**
* $str Unicode编码后的字符串
* $decoding 原始字符串的编码,默认utf-8
* $prefix 编码字符串的前缀,默认"&#"
* $postfix 编码字符串的后缀,默认";"
*/
function unicode_decode($unistr, $encoding = 'utf-8', $prefix = '&#', $postfix = ';') {
    $arruni = explode($prefix, $unistr);
    $unistr = '';
    for ($i = 1, $len = count($arruni); $i < $len; $i++) {
        if (strlen($postfix) > 0) {
            $arruni[$i] = substr($arruni[$i], 0, strlen($arruni[$i]) - strlen($postfix));
        }
        $temp = intval($arruni[$i]);
        $unistr .= ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256);
    }
    return iconv('UCS-2', $encoding, $unistr);
}

$str = "PHP二次开发:www.php2.cc";

$unistr = unicode_encode($str);
$unistr2 = unicode_decode($unistr);
echo $unistr . '<br />';
echo $unistr2 . '<br />';

$unistr = unicode_encode($str,'GBK','\\u');
$unistr2 = unicode_decode($unistr,'GBK','\\u');
echo $unistr . '<br />';
echo $unistr2 . '<br />';

 

0
1
分享到:
评论

相关推荐

    php 编码相互转换类(gbk转换utf8)

    标题中的"php 编码相互转换类(gbk转换utf8)"就是这样一个解决方案,它提供了一种更可靠的方式来将GBK编码的字符串转换为UTF-8编码。这个转换类通常包含一系列方法,用于处理各种编码转换的细节,如错误处理、异常...

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

    风吟PHP Unicode编码转换程序是一个基于PHP开发的工具,主要用于处理和转换Unicode编码。Unicode是一种国际标准,旨在统一世界上各种语言的文字编码,使得不同语言之间的文本数据交换变得简单。在PHP编程中,处理...

    用PHP实现UTF-8和Unicode编码转换的技术.pdf

    "用PHP实现UTF-8和Unicode编码转换的技术.pdf" 本文档主要讨论了使用PHP实现UTF-8和Unicode编码转换的技术。首先,文章对UTF-8和Unicode的编码特征进行了分析,并探索了这两种编码之间的转换关系。然后,使用PHP...

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

    标题"基于PHP的Unicode编码转换程序源码.zip"暗示了我们这里有一个使用PHP编写的程序,它的功能是进行Unicode编码的转换。源码的分享对于开发者来说尤其有价值,因为这提供了一个学习和研究编码转换技术的实际示例。...

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

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

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

    标题 "基于PHP的Unicode编码转换程序.zip" 暗示我们关注的是一个使用PHP语言编写的程序,该程序专门用于处理Unicode编码的转换。Unicode是一种国际标准,它为每个字符定义了一个唯一的数字,使得计算机可以处理全球...

    PHP实例开发源码-风吟PHP Unicode编码转换程序.zip

    PHP实例开发源码—风吟PHP Unicode编码转换程序.zip PHP实例开发源码—风吟PHP Unicode编码转换程序.zip PHP实例开发源码—风吟PHP Unicode编码转换程序.zip

    PHP实例开发源码—PHP Unicode编码转换程序.zip

    这个"PHP实例开发源码—PHP Unicode编码转换程序.zip"文件是一个关于如何在PHP中处理Unicode编码的实践案例。 在PHP中,Unicode编码的处理涉及到字符串的编码和解码。PHP提供了多个函数来处理这种编码转换,如`mb_...

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

    Unicode编码相互转换在处理多语言或者中文字符时特别有用。本篇将详细解释如何使用PHP实现Unicode编码的转换,包括从Unicode编码到其他编码(如UTF-8、GBK等)以及从其他编码到Unicode编码的过程。 首先,我们来看`...

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    3. UTF-8:一种变长的Unicode编码,用1到4个字节表示一个字符。对于ASCII字符,UTF-8编码与ASCII相同,都是单字节。UTF-8的特殊之处在于它包含一个字节顺序标记(BOM),即UTF-8+BOM,但大多数情况下,UTF-8无BOM更...

    Unicode码Ascii码转换对照表

    用于在PHP无法使用 iconv 函数和 mb_string 库的情况下,实现GB2312与UNICODE的相互转换。 正确转换的前提是你的系统是简体中文版的Windows。 包内附加一个UNICODE转换为GB2312的函数,看看里面的函数就明白了。 有...

    ASCII UNICODE 字符转换

    例如,如果你有一个只包含英文的ASCII文本,而你想要添加一些中文字符,那么就需要将这些新增的字符转换为UNICODE编码。这个过程可能涉及到文本编辑器、编程语言的字符串处理函数,或者专门的转换工具。在编程中,...

    PHP如何实现Unicode和Utf-8编码相互转换

    本文将详细介绍如何在PHP中实现Unicode和UTF-8编码的相互转换,同时解析这两种编码的区别。 Unicode是一个字符集,它包含了世界上几乎所有的字符,包括各种语言、特殊符号等。Unicode使用固定长度的双字节来表示每...

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

    这个压缩包提供的类库专门用于处理GBK和UTF8编码的字符串,并将其转换为Unicode编码,反之亦然。下面我们将深入探讨字符串编码转换的相关知识以及如何使用这个PHP类库。 Unicode是一种广泛使用的字符编码标准,它...

    php ASCII 字符转换 (汉字及特殊字符) 宽字符 (uft8/unicode)

    本篇文章将探讨ASCII字符转换,特别是如何处理汉字及特殊字符,并涉及宽字符(如UTF-8和Unicode编码)的相关知识。 首先,ASCII是一种基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它包含...

    php制作unicode解码工具(unicode编码转换器)代码分享

    ### PHP 制作 Unicode 解码工具 (Unicode 编码转换器) 代码解析与知识点 #### 一、Unicode 编码简介 Unicode 是一种国际字符集标准,旨在为所有语言中的字符提供统一的编码方式。它支持世界上几乎所有的书写系统,...

    ajax使用示例-unicode转换中文

    在这个"ajax_example"项目中,我们将深入探讨如何在PHP环境中使用Ajax来实现Unicode编码的中文字符转换。 首先,我们了解Unicode。Unicode是一种字符集,包含了世界上几乎所有的文字系统,每个字符都有一个唯一的...

    风吟PHP Unicode编码转换.rar

    Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有...UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

Global site tag (gtag.js) - Google Analytics