Unicode编码解码在线转换工具

Unicode编码解码在线转换工具

Unicode 是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)对外发表。

2006年7月的最新版本的 Unicode 是5.0版本。 2005年3月31日推出的Unicode 4.1.0 。另外,5.0 Beta于2005年12月12日推出,5.2版本(unicode standard)于2009年10月1日正式推出,以供各会员评价。
目前Unicode标准,6.1版已发布(2012年1月31日)。在unicode联盟网站上可以查看完整的6.1的核心规范。
Unicode定义了大到足以代表人类所有可读字符的字符集。

 

 请输入要编码的内容:



 

请输入要解码的内容
 

 

PHP 代码实现

复制代码
<?php

function unicode_encode($name)

{

    $name = iconv('UTF-8', 'UCS-2', $name);

    $len = strlen($name);

    $str = '';

    for ($i = 0; $i < $len - 1; $i = $i + 2)

    {

        $c = $name[$i];

        $c2 = $name[$i + 1];

        if (ord($c) > 0)

        {   //两个字节的文字

            $str .= '\u'.base_convert(ord($c), 10, 16).str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT);

        }

        else

        {

            $str .= $c2;

        }

    }

    return $str;

}



//将UNICODE编码后的内容进行解码

function unicode_decode($name)

{

    //转换编码,将Unicode编码转换成可以浏览的utf-8编码

    $pattern = '/([\w]+)|(\\\u([\w]{4}))/i';

    preg_match_all($pattern, $name, $matches);

    if (!empty($matches))

    {

        $name = '';

        for ($j = 0; $j < count($matches[0]); $j++)

        {

            $str = $matches[0][$j];

            if (strpos($str, '\\u') === 0)

            {

                $code = base_convert(substr($str, 2, 2), 16, 10);

                $code2 = base_convert(substr($str, 4), 16, 10);

                $c = chr($code).chr($code2);

                $c = iconv('UCS-2', 'UTF-8', $c);

                $name .= $c;

            }

            else

            {

                $name .= $str;

            }

        }

    }

    return $name;

}
复制代码

 

转载:http://www.cnblogs.com/txw1958/archive/2013/04/20/unicode-encode-decode.html

你可能感兴趣的:(unicode)