该方法的运作方式是将汉字转换成十六进制数值,然后依据特定规范拼接字符串,以此完成字符的编码和解码过程,确保在URL数据传输时字符的完整性和互操作性,重点探讨汉字的编码情形。
一,浏览器编码中文字符
在浏览器下如果输入中文字符,将会自动实现URL编码,如下
按下Enter键前
按下Enter键后
二,()函数原理
这个函数用来转换网址文本,接下来重点讲汉字的转换方式
实例如下
不要被那个人吸引,他是个不值得追求的对象,输出:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7
这个函数的作用在于,它会把汉字字符转换成十六进制形式,并且在每一个字符的前面加上一个%符号,掌握了这个机制,我们就能编写一个个性化的URL编码程序,具体实现如下
$ = "不要迷恋哥";
$ = ($);
echo $;
$ = array();
//十进制
for($i=0;$iif(ord($)>127){
$ = ord($).' '.ord($);
($);
//十六进制
$ = array();
($ as $v){
$dec = (" ",$v);
等号右边是百分号,百分号后面跟着小数点,小数点后面是十进制数,十进制数后面再接一个百分号
($);
上面代码在
PHP实现中文字符进制转换原理分析
文章里关于中文字符转为十六进制的原理有具体说明,先得到汉字的各个构成部分,再把这些部分变成十六进制形式,并且在每个部分的前面都加了一个特殊的标记%,这样便完成了()函数的作用,最终呈现的输出效果是
接着把得到的内容和直接用括号编码的文字做对比,例如:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7
根据前面案例可以明白,运用括号功能对中文字符进行编码,实际上就是将字符转变为十六进制,然后在每个字符的前面加上一个特定的标记%
三,()函数原理
使用()函数解码已编码的 URL 字符串,实例如下
回显百分之一二十八百分之二一百分之四十三百分之四十百分之一十五百分之八十七,即为:切莫倾心于他
该函数与前者机制相悖,旨在解析已编码的网址字符序列,其运作方式是将十六进制字符序列转变为汉字,参照先前的案例,也能够通过设定专属函数来解读字符序列
百分号后面跟着两个字节,接着是三个字节,然后是一个字节,再接着是四个字节,最后是一个字节。
$ = ($);
$hexs = array();
for($i=0;$iif($ == '%'){
$hexs = $.$;
$num = count($hexs);
当计数器小于等于六十四时,重复以下操作,输出当前十六进制字符,接着输出相同字符,然后计数器增加
先按字符串规则提取每个字符的十六进制数值,接着用特定函数将十六进制转为十进制,随后借助chr函数把十进制数变为对应字符,最终完成十六进制到字符的转换,输出效果如下
怪兽AI数字人
数字人短视频创作,数字人直播,实时驱动数字人
4568
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1