浅析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 相关文章推荐
第八节--访问方式
Nov 16 PHP
php中session使用示例
Mar 29 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
php自定义apk安装包实例
Oct 20 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
PHP图像处理类库及演示分享
May 17 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
tp5.1 框架join方法用法实例分析
May 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/10/09 PHP
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Python卸载模块的方法汇总
2016/06/07 Python
python实现flappy bird游戏
2018/12/24 Python
Django web框架使用url path name详解
2019/04/29 Python
python安装本地whl的实例步骤
2019/10/12 Python
Python 绘制可视化折线图
2020/07/22 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
人力资源行政经理自我评价
2013/10/23 职场文书
团日活动总结书格式
2014/05/08 职场文书
优质服务口号
2014/06/11 职场文书
三潭印月的导游词
2015/02/12 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js