浅析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中使用Oracle数据库(5)
Oct 09 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
Apr 09 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 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 和 MySQL 基础教程(四)
2006/10/09 PHP
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
Linux下编译安装MySQL-Python教程
2015/02/02 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python telnet登陆功能实现代码
2020/04/16 Python
python退出循环的方法
2020/06/18 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
局域网标准
2016/09/10 面试题
事业单位公务员的职业生涯规划
2014/01/15 职场文书
生物学学生自我评价
2014/01/17 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
科学发展观演讲稿
2014/09/11 职场文书
出国留学单位推荐信
2015/03/26 职场文书
爱的教育读书笔记
2015/06/26 职场文书
大学生暑期实践报告
2015/07/13 职场文书
护士医德医风心得体会
2016/01/25 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL