浅析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 相关文章推荐
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
php笔记之:初探PHPcms模块开发介绍
Apr 26 PHP
php curl模拟post提交数据示例
Dec 31 PHP
PHP判断变量是否为0的方法
Feb 08 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
PDO::rollBack讲解
2019/01/29 PHP
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
react-router中的属性详解
2017/06/01 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
python中的闭包用法实例详解
2015/05/05 Python
深入理解Python装饰器
2016/07/27 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
本科毕业生自荐信
2014/05/26 职场文书
科学发展观演讲稿
2014/09/11 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书