前端(JS)对URL的编码和解码方式以及重要性——IE浏览器必须对中文URL进行编码

工作记录-前端——前端(JS)对URL的编码和解码方式以及重要性——IE浏览器必须对中文URL进行编码

  • 创作场景
  • 前端JS对URL的三种编码和解码方式
    • 1. escape 和 unescape
    • 2. encodeURI 和 decodeURI
    • 3. encodeURIComponent 和 decodeURIComponent
  • 本文重点

创作场景

   工作中遇到了一个带中文的URL链接,因为是文件预览,在文件名为uuid的情况下需要将中文名展示在导航栏,所以将文件中文名拼接在了URL后面,但是出现了IE报400错误的情况,经过排查是URL带中文的问题,特此记录。

前端JS对URL的三种编码和解码方式

1. escape 和 unescape

   这两个一般是用于对某个变量进行编码的,无法直接作用与URL除了ASCII字母、数字、标点符号"@ * _ + - . /"以外,对其他所有字符进行编码。在u0000到u00ff之间的符号被转成%xx的形式,其余符号被转成%uxxxx的形式。对应的解码函数是unescape()

   一般这个是不常用的,不过对于变量进行编码的时候要注意,如果变量中有特殊符号+会自动编码为空格

2. encodeURI 和 decodeURI

   这两个是对特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。主要对URL进行部分编码,编码后,它输出符号的utf-8形式,并且在每个字节前加上%。它对应的解码函数是decodeURI(),一般在URL中我们常常使用的就是这个,而且大多数情况都是对链接中拼接对象时进行编码,接收时进行解码。

3. encodeURIComponent 和 decodeURIComponent

   与encodeURI()的区别是,它用于对整个URL进行编码。“; / ? : @ & = + $ , #”,这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。它对应的解码函数是decodeURIComponent()。这种适用场景比较少,一般我们的链接除了对象和中文外都需要暴露在外面以便用户查看和复制。

   以上就是前端中常用的三类编码和解码方式,当然也都比较常见,如果需要将中文传递给后台,一般也需要进行编码,而后台也有对应的解码方法,这里就不做赘述了。

本文重点

   一定要养成一个好习惯,如果URL中出现了中文,一定要使用编码方法进行编码,虽然现在的浏览器大多数都进行了兼容处理,对于一些老旧的浏览器比如IE或者一些平板啊手机都会出现不兼容报错的情况,而400错误大多数情况就是我们的URL错误啦,而有时候可能不是拼接问题,编码也会影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

net语言编程:深入探索其奥秘与挑战

net语言编程:深入探索其奥秘与挑战 在当今信息化社会,编程语言如同构建数字世界的砖瓦,而net语言编程便是其中的一颗璀璨明珠。它以其独特的魅力吸引着无数开发者,但同时也伴随着一系列令人困惑和充满挑战的问题。本文将从四个方…

大模型学习资料整理:如何从0到1学习大模型,搭建个人或企业RAG系统,如何评估与优化(更新中...)

通过本文您可以了解到: 学习:从小白如何入手,从0到1开始学习大模型。RAG系统:我想搭建属于自己或者企业的RAG系统,我该怎么去做?评估:微调后的模型或者RAG系统,如何评估自己的模型和…

windows配置dns访问git , 加快访问速度保姆级教程

设置 DNS 访问 Git 需要修改电脑的 DNS 配置。下面是具体的操作流程: 第一步:打开命令提示符或终端窗口 在 Windows 系统中,可以按下 Win R 组合键,然后输入 “cmd”,按下 Enter 键打开命令提示符窗口。在 macOS 或 …

【活动】GPT-4O:AI语言生成技术的新里程碑

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 GPT-4O:AI语言生成技术的新里程碑引言GPT系列简史回顾GPT-1: 初露锋…

国际荐酒师(香港)协会亮相香港国际葡萄酒和烈酒展览会

2024年5月28日至30日,备受瞩目的香港国际葡萄酒和烈酒展览会VINEXPO Hong Kong在香港盛大举办。作为亚太区最盛大的葡萄酒展会,本届展会不仅吸引了全球葡萄酒和烈酒行业的目光,更见证了国际荐酒师(香港)协会&#xff0…

(2) qml诞生的原因 和Qt Creator开发环境的介绍

文章目录 qml诞生原因Qt Quick应⽤程序Qt Creator环境1、MSVC2、MinGWMSVC的优缺点MinGW的优缺点 最后的选择延伸阅读 一些常用的快捷键统一格式化代码统一qml 语言的格式Locator 定位器帮助 qml诞生原因 可以在Qt5中开发的不同类型的经典应⽤程序。桌⾯应⽤程 序正在发⽣着改…

物联网断点续传

断点续传是一种在网络传输中断后,能够从中断的位置继续传输的技术。它可以有效地避免因为网络不稳定、服务器故障、用户操作等原因导致的传输失败,节省了用户的时间和流量,提高了传输的效率和可靠性。断点续传在很多场景中都有广泛的应用&…

GIS结合物联网:塑造智慧地球的新篇章

在信息技术飞速发展的今天,地理信息系统(GIS)与物联网(IoT)的深度融合,正以前所未有的方式重塑着我们对世界的认知。本文将深入探讨GIS与物联网结合的原理、应用实践以及面临的挑战与未来展望,共…

乡村振兴与乡村旅游品牌化:打造具有地方特色的乡村旅游品牌,提升乡村旅游吸引力,促进美丽乡村建设

目录 一、引言 二、乡村旅游品牌化的重要性 (一)增强乡村旅游的辨识度 (二)提升乡村旅游的附加值 (三)促进乡村文化的传承与创新 三、打造具有地方特色的乡村旅游品牌 (一)明…

Python知识点6---列表和元组

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python的列表和和元组定义方式如下,且注意列表和元组拥有…

【深度强化学习入门:结合直觉与算法的学习之旅】

文章目录 前言深度强化学习的关键要素简单的深度Q网络(DQN)实现分析代码结论 前言 深度强化学习结合了深度学习的表征学习能力和强化学习的决策制定机制,这使得机器能够在复杂环境中自我学习并做出合理的行动策略。它在游戏玩耍、自动驾驶、…

Linux实验报告(二)——Linux系统中的常用命令

目录 一、实验名称: 二、仪器、设备: 三、参考资料: 四、实验目的: 五、实验内容(步骤): 六、实验数据(程序)记录: ​编辑 ​编辑 七、实验结果分析…

Python知识点9---推导式

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python提供的推导式,只对列表、字典、集合三种数据类型生…

公司网站模板制作

公司网站模板的制作是一项极其重要的工作,因为网站模板决定了网站的整体风格和用户体验。一个漂亮、易用的网站模板将会吸引更多的用户,而一个糟糕的网站模板则会让用户不供选择。下面就让我们介绍一下公司网站模板的制作。 首先,一个好的网站…

iCold编程入门:探索未知的编程世界

iCold编程入门:探索未知的编程世界 在浩瀚的数字宇宙中,iCold编程犹如一颗璀璨的新星,吸引着无数好奇而勇敢的探险家。然而,对于初学者来说,这个神秘的世界往往充满了未知与挑战。今天,我们就将一同踏入这…

前端 CSS 经典:mac docker 效果

前言:浏览器上实现 mac docker 效果,实现思路,1. 布局,方框间距用元素代替,因为有放大缩小功能,不用元素的话,不好控制。2. 定义个 css 变量 i,用来代表放大比例。3. 确定每个元素的…

信息系统项目管理师软考高级论文教程必过论文分享

很多人提到软考就会想到信息系统项目管理师和系统集成项目管理工程师,这两个不同的软考内容的区别不仅仅在于一个是高级,一个是中级,还有一个区别是它们的考试内容也是不同的,高级的信息系统项目管理师考试多了一项论文的考试&…

K-means 聚类算法和K-means ++聚类算法详解【5】

1、通俗易懂的讲解链接 补充链接,K- means算法的K值选择策略:链接一,链接二​​​​​​​; 后续关键点渐次补充

MySQL入门学习-查询进阶.正则表达式

在 MySQL 中,正则表达式是用于匹配文本模式的工具。正则表达式可以用于在查询中进行模式匹配,以便更精确地查找和操作数据。 一、以下是一些常见的查询进阶操作和正则表达式的特点、使用方法以及与其他比较和高级应用的示例: 1. LIKE操作符…

USART串口数据包

USART串口数据包 先来看两张图,本次程序是串口收发HEX数据包,第二种是串口收发文本数据包,之后两个图,展示的就是接收数据包的思路。 在PB1这里接了一个按键,用于控制。在串口助手,在发送模式和接收模式都…