php - urlencode后的每个%XX代表一个字节?

查看:95
本文介绍了php - urlencode后的每个%XX代表一个字节?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

中文urlencode后,每个%XX代表一个字节,是这样的吧?
所以urlencode('中')的结果是%XX%XX%XX(utf-8编码)

解决方案

对的,为了解决unicode的过于占用内存空间和扩展不变的问题,utf-8规范出现了。

  1. 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

  2. 对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

也就是说utf-8的编码结果是变长的。
字的utf-8编码为E4B8AD,所以对应的urlencode为%E4%B8%AD.

这篇关于php - urlencode后的每个%XX代表一个字节?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆