浅析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 fsockopen写的HTTP下载的类
Feb 22 PHP
解决MySQL中文输出变成问号的问题
Jun 05 PHP
php 学习资料零碎东西
Dec 04 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
PHP中feof()函数实例测试
Aug 23 PHP
php把数组值转换成键的方法
Jul 13 PHP
php 浮点数比较方法详解
May 05 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
深入解析PHP底层机制及相关原理
Dec 11 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通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
大学生找工作推荐信范文
2013/11/28 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
入学申请自荐信范文
2014/02/26 职场文书
环保倡议书
2014/04/14 职场文书
会议欢迎词范文
2015/01/27 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers