浅析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 相关文章推荐
图书管理程序(一)
Oct 09 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
PHP IDE phpstorm 常用快捷键
May 18 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
PHP实现百度人脸识别
May 06 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 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/12/28 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
Python代码调试的几种方法总结
2015/04/15 Python
python实现BackPropagation算法
2017/12/14 Python
Python对象属性自动更新操作示例
2018/06/15 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
python实现处理mysql结果输出方式
2020/04/09 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
招聘专员岗位职责
2014/03/07 职场文书
爱耳日活动总结
2014/04/30 职场文书
初中毕业生自我评价
2015/03/02 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers