浅析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扩展图文教程
Dec 12 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
Mar 01 PHP
PHP循环结构实例讲解
Feb 10 PHP
实现获取http内容的php函数分享
Feb 16 PHP
php分页函数示例代码分享
Feb 24 PHP
php实现的通用图片处理类
Mar 24 PHP
php curl 上传文件代码实例
Apr 27 PHP
laravel 实现设置时区的简单方法
Oct 10 PHP
CI框架简单分页类用法示例
Jun 06 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 各种排序算法实现代码
2009/08/20 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
Python对象转JSON字符串的方法
2016/04/27 Python
python发送邮件功能实现代码
2016/07/15 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
python如何基于redis实现ip代理池
2020/01/17 Python
python实现人脸签到系统
2020/04/13 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
在校生党员自我评价
2013/09/25 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
临床专业自荐信
2014/06/22 职场文书
学生会个人总结范文
2015/02/15 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
Python装饰器详细介绍
2022/03/25 Python