浅析PHP中的UNICODE 编码与解码


Posted in PHP onJune 29, 2013

方法一:

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

方法二:
function unicode2utf8($str){


if(!$str) return $str;


$decode = json_decode($str);


if($decode) return $decode;


$str = '["' . $str . '"]';


$decode = json_decode($str);


if(count($decode) == 1){



return $decode[0];


}



return $str;


}
PHP 相关文章推荐
使用apache模块rewrite_module (转)
Feb 14 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
Jun 23 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 PHP
CI框架Session.php源码分析
Nov 03 PHP
php获取远程文件大小
Oct 20 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
PHP微信公众号自动发送红包API
Jun 01 PHP
yii插入数据库防并发的简单代码
May 27 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
基于flush()不能按顺序输出时的解决办法
Jun 29 #PHP
解析PHP 使用curl提交json格式数据
Jun 29 #PHP
PHP 过滤页面中的BOM(实现代码)
Jun 29 #PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 #PHP
解析PHP的session过期设置
Jun 29 #PHP
php selectradio和checkbox默认选择的实现方法详解
Jun 29 #PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 #PHP
You might like
目录,文件操作详谈―PHP
2006/11/25 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python使用cPickle模块序列化实例
2014/09/25 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
python如何实现代码检查
2019/06/28 Python
类、抽象类、接口的差异
2016/06/13 面试题
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
校园运动会广播稿
2014/10/06 职场文书
2015年检验科工作总结
2015/04/27 职场文书
党小组考察意见
2015/06/02 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
Python何绘制带有背景色块的折线图
2022/04/23 Python
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript