浅析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 相关文章推荐
PHP的开发框架的现状和展望
Mar 16 PHP
php数字转汉字代码(算法)
Oct 08 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
怎么在Windows系统中搭建php环境
Aug 31 PHP
destoon官方标签大全
Jun 20 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
php 如何获取文件的后缀名
Jun 05 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
YII框架常用技巧总结
Apr 27 PHP
php简单检测404页面的方法示例
Aug 23 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页面间参数传递的四种方法详解
2013/06/09 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
javascript 闭包
2011/09/15 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
python中实现延时回调普通函数示例代码
2017/09/08 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python在每个字符后添加空格的实例
2018/05/07 Python
python模块导入的方法
2019/10/24 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
logging level级别介绍
2020/02/21 Python
Python双链表原理与实现方法详解
2020/02/22 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
大学生就业自荐信
2013/10/26 职场文书
毕业生的自我鉴定
2013/10/29 职场文书
收银员岗位职责
2014/02/07 职场文书
个人授权委托书范本
2014/04/03 职场文书
实验心得体会
2014/09/05 职场文书
师德师风个人整改措施
2014/10/27 职场文书
2015年父亲节寄语
2015/03/23 职场文书
党委工作总结2015
2015/04/27 职场文书
分享几种python 变量合并方法
2022/03/20 Python
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL