URL编码是怎么回事?
但是,这只是表象,真正的网络世界对输入语言的要求是非常苛刻的,可以说是专属于英文字符的。
虽然在 URL 中使用一些中文字符从技术上讲不存在识别和传输的问题,但是网络标准协议中却规定了 URL 中只能包含英文字符。
那么,我们在地址栏里看到和使用的中文又是怎么回事呢?
事实上,那只是浏览器的障眼法。虽然我们在浏览器的输入框里使用了中文,可一旦浏览器发出网络请求,请求中的中文将不复存在,会变成我们经常看到却不明所以的东西,比如 %e5%82%bb%e5%91%80 ,这就是 URL 中的中文被编码后的结果。
可能大家会觉得这种编码结果有些奇特,跟平时看到的编码比,它多了很多的这个 % ,其实只是分隔符,如果把 % 替换成空格,就可以看到我们熟悉的编码结果了,比如上面的 e5 82 bb e5 91 80 ,眼尖的读者可能会看出这就是中文的 UTF-8 的编码。
按照标准进行编码是合理的,但是标准没有规定用什么编码,于是开发人员开始各自为战,有用 UTF-8 编码的,也有用 GB2312 编码的,这两种编码是什么不重要,重要的是两种编码的结果不一样,很多时候后台、前端、终端之间的矛盾就是因它而起的。
更让开发者觉得麻烦的是标准没有提供编码守则,于是程序员开始自由发挥。例如,在 URL 的实际使用过程中,经常会对 URL 的参数进行拼装,拼装的 URL 参数来源往往是没法确定的。
不过,不管参数的内容是什么,为了避免出现中文字符,开发者一般会在 URL 拼装完毕后统一做一次编码。
问题是,参数源可能已经将 URL 编码过一次了,而编码后的字符串是能够再次被编码的,就像俄罗斯套娃一样,所以看到一个编码结果时,开发者甚至没法确定它要被解码多少次才能得到真正的结果。
大家再看到这种包含很多 % 的字符串时,别认为是加密数据,随便找个 URL 解码工具就能还原它。
22413.html
相关文章
- URL语法,编码以及未来的可能性
- 2023-03-07:x264的视频编码器,不用ffmpeg,用libx264.dll也行。请用go语言调用libx264.dll,将yuv文件编码成h264文
- 【Android 安装包优化】WebP 图片格式性能测试 ( 测试 WebP 图片解码速度 | 测试 WebP 图片编码速度 )
- Http Url Get请求方式需要对中文参数进行编码详解编程语言
- MySQL创建表的正确编码:UTF8(mysql创建表utf8)
- 『MySQL连接URL:获取快速、安全连接』(连接mysql的url)
- MySQL连接URL:快速获取方法(mysql链接url)
- 快速掌握 Linux 访问 URL 的窍门(linux访问url)
- Linux下快速访问URL的命令技巧(linux命令访问url)
- Linux下数据库编码设置实战(linux设置数据库编码)
- MySQL设置字符集:配置正确的字符编码(mysql设置字符集)
- MSSQL中如何将字符串编码转换为UTF8(mssql转换字符串编码)
- MySQL 数据库中 URL 的格式(mysql中url的格式)
- MySQL如何正确地写URL(mysql中url怎么写)
- Oracle数据库中保存URL的方法(oracle保存url)
- 从Redis里获取URL简单而高效(从redis里面读url)
- Oracle数据库连接URL设置指南(oracle url设置)
- 对URL地址进行编码优化2
- 包含中文字符的URL编码问题
- asp实现对SQL注入危险字符进行重编码处理的函数
- PHPutf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
- php验证是否是md5编码的简单代码
- C语言安全编码之数组索引位的合法范围
- 访问编码后的中文URL返回404错误的解决方法