php实现utf-8转unicode函数分享


Posted in PHP onJanuary 06, 2015

代码很简单,功能却很实用,推荐给大家。

奉上代码先:

public function utf8_unicode($str) {

    $unicode = array();

    $values = array();

    $lookingFor = 1;

    for ($i = 0; $i < strlen( $str ); $i++ ) {

        $thisValue = ord( $str[ $i ] );

        if ( $thisValue < ord('A') ) {

            // exclude 0-9

            if ($thisValue >= ord('0') && $thisValue <= ord('9')) {

                 // number

                 $unicode[] = chr($thisValue);

            }

            else {

                 $unicode[] = '%'.dechex($thisValue);

            }

        } else {

            if ( $thisValue < 128) {

                $unicode[] = $str[ $i ];

            } else {

                if ( count( $values ) == 0 ) {

                    $lookingFor = ( $thisValue < 224 ) ? 2 : 3;

                }

                $values[] = $thisValue;

                if ( count( $values ) == $lookingFor ) {

                    $number = ( $lookingFor == 3 ) ?

                        ( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):

                        ( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );

                    $number = dechex($number);

                    $unicode[] = (strlen($number)==3)?"\u0".$number:"\u".$number;

                    $values = array();

                    $lookingFor = 1;

                } // if

            } // if

        }

    } // for

    return implode("",$unicode);

}
PHP 相关文章推荐
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
php简单提示框alert封装函数
Aug 08 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
windows中为php安装mongodb与memcache
Jan 06 #PHP
phpQuery让php处理html代码像jQuery一样方便
Jan 06 #PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 #PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 #PHP
phplot生成图片类用法详解
Jan 06 #PHP
写一段简单的PHP建立文件夹代码
Jan 06 #PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 #PHP
You might like
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
Yii分页用法实例详解
2014/12/04 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
浅谈js的异步执行
2016/10/18 Javascript
js实现交通灯效果
2017/01/13 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
深入浅析python的第三方库pandas
2020/02/13 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
开业庆典邀请函
2014/01/08 职场文书
办公室主任先进事迹
2014/01/18 职场文书
党支部特色活动方案
2014/08/20 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
交通事故代理词范文
2015/05/23 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android
python垃圾回收机制原理分析
2022/04/13 Python