登录  /  注册
此函数是PHP中哪方面的常识,其功能是何
php中文网
发布: 2016-06-13 10:57:55
原创
459人浏览过

此函数是PHP中哪方面的知识,其功能是何?
洒家偶遇如下一函数,从未接触过。
第一,是PHP中哪方面的知识?文件处理吗?还是二进制?
第二,请从头到末注解一番。为何要用过00XX,内存码。
PHP code
function js_unescape($str)    {        $ret = '';        $len = strlen($str);        for ($i = 0; $i < $len; $i++)        {            if ($str[$i] == '%' && $str[$i+1] == 'u')            {                $val = hexdec(substr($str, $i+2, 4));                if ($val < 0x7f) $ret .= chr($val);                else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));                else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));                $i += 5;            }            else if ($str[$i] == '%')            {                $ret .= urldecode(substr($str, $i, 3));                $i += 2;            }            else $ret .= $str[$i];        }        return $ret;    }  
登录后复制


------解决方案--------------------
解码,算是php版的unescape(js)
js中escape方法返回一个包含了charstring内容的字符串值(Unicode格式)所有空格、标点、重音符号以
及其他非ASCII字符都用%xx编码代替,其中xx等于表示该字符的十六进制数。例如,空格返回的是"%20"
字符值大于255的以%uxxxx格式存储。
大于0x7f是汉字,高位为1,按位操作,最核心操作就是对汉字解码
0x800我也没看懂,及向右平移6位与或非就出来个东西,是得专门想想啊,谁能给详解一个汉字的编码操作啊

------解决方案--------------------

ucs-2
4e2d
01001110 00101101

utf-8
e4b8ad
11100100 10111000 10101101


to franzhong
既然你知道大于0x7f是汉字,那么怎就不知道小于0x800的就不是汉字

相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学