当前位置: 首页 > news >正文

重庆大型的网站建设平面设计网课推荐

重庆大型的网站建设,平面设计网课推荐,湖北智能建站系统价格,做受视频播放网站为什么我复制的中文url粘贴出来会是乱码的? 浏览器url编码和解码 Start 番茄最近涉及到一些和单点登录相关的业务需求,在实现功能的过程中,难免少不了和 url 打交道。但是在打交道的过程中,遇到一个痛点:明明我复制的…

为什么我复制的中文url粘贴出来会是乱码的? 浏览器url编码和解码

Start

  • 番茄最近涉及到一些和单点登录相关的业务需求,在实现功能的过程中,难免少不了和 url 打交道。
  • 但是在打交道的过程中,遇到一个痛点:明明我复制的 url 是一个很简短的url,但是粘贴到浏览器的时候,却变成很长一串。
  • why?

1. 问题场景

举个例子:番茄我突然有一天心血来潮,想要找一个番茄的图片。于是我打开百度,输入番茄,回车搜索。如下图

在这里插入图片描述

可以看到上述截图,我们访问的 url 实际就是 https://www.baidu.com/s?wd=番茄;突然我觉得这个番茄图片特别好看,我想分享给我的小伙伴。于是我复制网站的 url,准备粘贴到我的聊天框中,发送给我的小伙伴。

但是有一个很神奇的现象,我粘贴后的链接,却是这样的:

https://www.baidu.com/s?wd=%E7%95%AA%E8%8C%84

2. 为什么粘贴出来的内容是被转码后的内容呢?

别人的讨论的结果

在这里插入图片描述

可以看到上述的内容,最关键的一个点就是:

因为 URL 本身就不支持中文,所有中文字符都要经过 URL 编码之后才可以传输

如何验证他说的话呢?

打开浏览器控制台,查看 network 选项,刷新页面。在调用接口的时候,发现访问的 url 是被转码后的内容了。如下图:

在这里插入图片描述

所以,转义的原因是:

URl 本身就不支持某些字符,在进行传输的时候,它会经过 URL 编码。

3. 转码相关的疑问

3.1 那些会被转义

对歧义性的数据进行 URL 百分号编码。

3.2 url转义字符原理:

将这些特殊的字符转换成ASCII码,格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。

3.3 URL特殊字符需转义

1、空格换成加号(+)
2、正斜杠(/)分隔目录和子目录
3、问号(?)分隔URL和查询
4、百分号(%)制定特殊字符
5、#号指定书签
6、&号分隔参数

3.4 中文字符转义原理

待补充

4. JS中如何实现解码和编码

4.1 解码

decodeURI()
decodeURIComponent()

4.2 编码

encodeURI()
encodeURIComponent()

4.3 中文解释

decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。

decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

4.4 使用示例

/* 1.基础编码 */
console.log(encodeURI('番茄'))
// %E7%95%AA%E8%8C%84
console.log(encodeURIComponent('番茄'))
// %E7%95%AA%E8%8C%84/* 2.encodeURIComponent支持特殊字符的编码 */
console.log(encodeURI('番茄#'))
// %E7%95%AA%E8%8C%84#
console.log(encodeURIComponent('番茄#'))
// %E7%95%AA%E8%8C%84%23/* 3.基础解码 */
console.log(decodeURI('%E7%95%AA%E8%8C%84'))
// 番茄
console.log(decodeURIComponent('%E7%95%AA%E8%8C%84'))
// 番茄/* 4.encodeURIComponent支持特殊字符的解码 */
console.log(decodeURI('%E7%95%AA%E8%8C%84%23'))
// 番茄%23
console.log(decodeURIComponent('%E7%95%AA%E8%8C%84%23'))
// 番茄#

区别: decodeURIComponent() 可以编码和解码URI特殊字符(如#,/,¥等),而 decodeURI()则不能。

End

  • 回想起日常工作中经常使用的截取 url 参数的函数。通常会依据?& 进行参数处理。当时的我就担心,会不会出现多个特殊字符的情况。
  • 在对比思考一下这边博客了解到的内容。才发现,担心的情况是会有的,但是会做特殊转义,避免相关问题了。
  • 加油
http://www.yayakq.cn/news/464327/

相关文章:

  • 什么是做自己的网站中信建设四川分公司招聘
  • 全国精品课程建设网站住房和城乡建设部网站诚信评价
  • 电子商务网站开发主要实现功能网站阶段推广计划
  • 各大网站域名大全.net网站吃内存
  • 做名片用什么网站博客 系统 wordpress
  • 资生堂网站建设长沙制作网页联系方式
  • 建站有哪些需求一般做网站的在哪里找
  • 网站优化步骤郑州seo技术顾问
  • 做同城相亲网站做网站去哪里做
  • 建设部网站一级开发资质网站建设中什么是一栏
  • 建网站 西安页面设计span
  • 网站开发空间小邯郸哪里做网站好
  • 南京做网站的在线系统
  • 喊人做网站需要注意些什么网站广告文案
  • 网站建设微信商城多少钱html静态网页素材
  • wordpress 搜索本站高端网站制作
  • 国外的调查网站上做问卷机关网站建设引导语
  • 计算机系毕设代做网站网页微信版官网登录密码登录
  • 爬虫做视频网站老闵行是指哪里
  • 广西建设局网站首页新公司怎么建立自己的网站
  • 淮安市广德育建设网站企业解决方案公司有哪些
  • 建站之星做出的网站不安全东莞营业厅
  • 加快网站平台建设网站 多语言处理
  • 网站页面设计代码泉州网站设计哪家公司好
  • wordpress建不了网站汉阳网站推广公司
  • 如何选择合适的建站公司建网站团队
  • 网站色调代号做煤的网站app
  • 企业摄影网站模板c 网站开发案例代码
  • 书画网站模板域名服务商是什么意思
  • 有没有学做ppt发网站或论坛猪八戒网站 怎么做兼职