前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js encodeURI : 冒号等 保留字符

js encodeURI : 冒号等 保留字符

原创
作者头像
刀枪不入de王二花
修改2022-08-24 13:14:39
1.8K0
修改2022-08-24 13:14:39
举报
文章被收录于专栏:BETTER

要件:

出力CSV,文件名包含格式化后当日日期【2022-08-24 13:24:15】

问题:

实际出力的文件名为:

文件名_2022-08-24 13%3A17%3A48.csv

原因:

URI 中具有特殊含义的 保留字符,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

代码语言:javascript
复制
 uriReserved ::: one of    保留字符
   ; / ? : @ & = + $ ,

对策:

代码语言:javascript
复制
encodeURIComponent('13:24')
decodeURIComponent('13%3A17%3A48')

处理结果:
文件名_20220824 13_35_11.csv


参考 标准_ECMAScript_内置对象

处理 URI 的函数属性

统一资源标识符,或叫做 URI,

是用来标识互联网上的资源(例如,网页或文件)和怎样访问这些资源的传输协议(例如,HTTP 或 FTP)的字符串。

一个 URI 是由组件分隔符分割的组件序列组成。其一般形式是:

Scheme : First / Second ; Third ? Fourth

其中斜体的名字代表组件;“:”, “/”, “;”,“?”是当作分隔符的保留字符。

encodeURIdecodeURI 函数操作的是完整的 URI;

这俩函数假定 URI 中的任何保留字符都有特殊意义,所以不会编码它们。

encodeURIComponentdecodeURIComponent 函数操作的是组成 URI 的个别组件;

这俩函数假定任何保留字符都代表普通文本,所以必须编码它们。

代码语言:javascript
复制
 uriReserved ::: one of  保留字符
   ; / ? : @ & = + $ ,

#encodeURI #decodeURI

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要件:
  • 问题:
  • 原因:
  • 对策:
    • 处理 URI 的函数属性
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档