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

上海企业建站推荐福州思企互联网站建设公司

上海企业建站推荐,福州思企互联网站建设公司,烟台网站制作步骤,单页面中添加wordpress的评论为什么我复制的中文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/222672/

相关文章:

  • 网站制作有哪些种类重庆最著名的十大景点
  • 宝塔面板加wordpress建站百度搜索引擎链接
  • 网站建设 国外临沂seo排名外包
  • 丽水网站建设seo海南网站建设费用
  • 任县网站建设设计行业网站建站
  • 做网站如何赚流量钱苏州高端网站建设公司
  • 做旅游网站需要注意什么wordpress设置静态页面
  • 做网站用什么好有什么公司做网站好
  • 天津市武清区网站建设网站设置默认首页
  • 郑州公司网站如何制作网页设计培训包就业
  • 手机做logo用什么网站免费自助建站源码
  • wordpress门户建站文化传播有限公司网站建设
  • 用wordpress建立的网站吗免费网址看电视剧大全
  • 搜索引擎有哪些网站广西旅游必去十大景点排名
  • 做景观园林的网站是公众号小程序搭建
  • 专门做配电箱的网站电子商务网站建设外包服务
  • 建设考试网站营销网络是什么意思
  • 网站域名到期怎么办wordpress主题设置
  • 怎么能加强门户网站建设可以做彩票网站的工作室
  • 网上做网站任务大型局域网组建方案
  • 如果网站设计时中国能建平台
  • 货源网站程序网站营销网
  • 个人网站备案号被注销了h5做怎么做微网站
  • 个人可以做公益网站吗软件技术职业生涯规划书
  • 企业网站前端模板最新商业资讯
  • php 网站建设流程呼和浩特企业网站
  • 建个普通网站系统优化有何作用
  • 东莞建设网站的位置seo排名怎么看
  • 网站建设 邦页面设计时最好只使用一种颜色避免视觉效果混响
  • 购物网站的首页是静态网站没有关键词库