浅析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 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
php URL编码解码函数代码
Mar 10 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
php模板中出现空行解决方法
Mar 08 PHP
sphinx增量索引的一个问题
Jun 14 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
理解PHP中的stdClass类
Apr 18 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
django中的ajax组件教程详解
Oct 18 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
php解决约瑟夫环算法实例分析
Sep 30 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
PHP array操作10个小技巧分享
2011/06/23 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
Joomla开启SEF的方法
2016/05/04 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
Python递归遍历列表及输出的实现方法
2015/05/19 Python
python正则分析nginx的访问日志
2017/01/17 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
Python flask框架post接口调用示例
2019/07/03 Python
使用python实现对元素的长截图功能
2019/11/14 Python
python函数超时自动退出的实操方法
2020/12/28 Python
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
后勤工作职责
2013/12/22 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
趣味运动会口号
2015/12/24 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书