浅析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 28 PHP
最常用的8款PHP调试工具
Jul 06 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
php连接微软MSSQL(sql server)完全攻略
Nov 27 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 PHP
详解PHP中的8个魔术常量
Jul 06 PHP
Swoole扩展的6种模式深入详解
Mar 04 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
简单的页面缓冲技术
2006/10/09 PHP
PHPMyAdmin 快速配置方法
2009/05/11 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
js中document.write的那点事
2014/12/12 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
Python中常用信号signal类型实例
2018/01/25 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
电子信息科学专业自荐信
2014/01/30 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android