浅析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 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
php开发过程中关于继承的使用方法分享
Jun 17 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
浅析PHP中Collection 类的设计
Jun 21 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
Sep 23 PHP
PHP计算近1年的所有月份
Mar 13 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 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
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
jQuery select控制插件
2009/08/17 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
班级体育活动总结
2014/07/05 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
中秋节随笔
2015/08/15 职场文书