浅析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文件操作实现代码分享
Sep 01 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
php动态变量定义及使用
Jun 10 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
基于PHP制作验证码
Oct 12 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
PHP 代码简洁之道(小结)
Oct 16 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
php smarty函数扩展
2010/03/15 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
php curl常用的5个经典例子
2017/01/20 PHP
javascript delete 使用示例代码
2010/03/29 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
python构建深度神经网络(DNN)
2018/03/10 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
硕士生工作推荐信
2014/03/07 职场文书
投资意向书范本
2014/04/01 职场文书
诉讼代理人授权委托书
2014/04/08 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL