首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能在encodeURI中放一个变量?

在JavaScript中,encodeURI()函数用于对URI进行编码,以便在URL中传输特殊字符。然而,encodeURI()函数只能接受一个字符串作为参数,而不能直接传递一个变量。

这是因为encodeURI()函数是对整个字符串进行编码,而不是对字符串中的变量进行编码。如果你尝试将一个变量直接传递给encodeURI()函数,它将会将变量转换为字符串,然后对整个字符串进行编码,而不是对变量的值进行编码。

如果你想对一个变量进行编码,你可以使用encodeURIComponent()函数。encodeURIComponent()函数与encodeURI()函数类似,但它对更多的字符进行编码,包括URL中的保留字符。你可以将变量作为参数传递给encodeURIComponent()函数,它将返回一个编码后的字符串。

以下是一个示例,展示了如何使用encodeURIComponent()函数对变量进行编码:

代码语言:txt
复制
var variable = "Hello World!";
var encodedVariable = encodeURIComponent(variable);
console.log(encodedVariable);

输出结果为:"Hello%20World%21"

在这个例子中,变量"Hello World!"被编码为"Hello%20World%21"。%20代表空格字符的编码,%21代表感叹号字符的编码。

需要注意的是,无论是使用encodeURI()函数还是encodeURIComponent()函数,编码后的字符串都需要在URL中进行解码才能得到原始的值。在JavaScript中,可以使用decodeURI()和decodeURIComponent()函数来解码编码后的字符串。

总结起来,不能直接在encodeURI()函数中放一个变量,因为它只接受一个字符串作为参数。如果你想对一个变量进行编码,应该使用encodeURIComponent()函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

作为一个区块链技术人员,为什么只做技术炒币?

2018年初,突然发现,身边人一个个转身变成了比特币专家,区块链代言人,以太坊、分布式存储一直挂在嘴边,而我,一个做区块链的技术人员却成了区块链的“边缘派”…… 然而,作为区块链的“边缘派”,今天想说为什么不赞成炒币...,但是执着于做好区块链的技术。...区块链职位需求 有一个人才缺口的公式,个人觉得很有意思: 人才的紧缺程度:区块链>人工智能>互联网金融>O2O 很多人都误以为区块链的门槛很高,但是不得不跟你说,就像你对区块链和比特币的误解一样,对区块链的职位需求你也理解错了...区块链人才机遇 说到人才机遇,作为区块链的技术人员,告诉你们区块链技术人员真的不一定炒币,不是没有契机去炒币,只是对于我个人来说可能炒币倒不如踏踏实实的代码,搭建的区块链框架。

1.4K50

为什么要进行URL编码!!!

现在有这样一个问题,如果的参数值中就包含=或&这种特殊字符的时候该怎么办?...另外一个问题,就是为什么我们要用ASCII传输,可不可以用别的编码? 当然可以用别的编码,你自己可以开发一套编码,然后自己解析。就像大部分国家都有自己的语言一样。那国家之间要交流,怎么办?...又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文。...之前在使用Aptana(为什么专指aptana下面会提到)遇到一个很迷惑的问题,就是在使用encodeURI的时候,发现它编码得到的结果和我想的很不一样。...所以我当时就很质疑,难道encodeURI还跟页面编码有关,但是发现,正常情况下,如果你使用gb2312进行Url编码也不会得到这个结果的才是。

5.9K30

为什么要进行 URL 编码???

现在有这样一个问题,如果的参数值中就包含=或&这种特殊字符的时候该怎么办?...另外一个问题,就是为什么我们要用ASCII传输,可不可以用别的编码? 当然可以用别的编码,你自己可以开发一套编码,然后自己解析。就像大部分国家都有自己的语言一样。那国家之间要交流,怎么办?...又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文。...之前在使用Aptana(为什么专指aptana下面会提到)遇到一个很迷惑的问题,就是在使用encodeURI的时候,发现它编码得到的结果和我想的很不一样。下面是的示例代码: <!...所以我当时就很质疑,难道encodeURI还跟页面编码有关,但是发现,正常情况下,如果你使用gb2312进行Url编码也不会得到这个结果的才是。

1.1K20

Web开发须知:URL编码与解码

又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文。...适用场合不同:encodeURI被用作对一个完整的URI进行编码,而encodeURIComponent被用作对URI的一个组件进行编 码。...由于encodeURI操纵的对象是一个完整的的URI,这些字符在URI中本来就有特殊用途,因此这些保 留字符不会被encodeURI编码,否则意义就变了。   ...之前在使用Aptana(为什么专指aptana下面会提到)遇到一个很迷惑的问题,就是在使用encodeURI的时候,发现它编码得到的结果和我想的很不一样。下面是的示例代码: <!...所以我当时就很质疑,难道encodeURI还跟页面编码有关,但是发现,正常情况下,如果你使用gb2312进行Url编码也不会得到这个结果的才是。

2.4K30

URL 如何编码

然后再向服务器提交,不要给浏览器插手的机会,这样就能保证客户端只用一种编码方法向服务器发出请求 ** escape   js中编码出生最早的一个,不提倡使用,真正作用是: 返回一个字符的Unicode...编码值,为的是方便他们能在所有计算机上可读,规则: 所有空格、标点以及其他非ASCII字符都用%xx编码替换; 例如空格返回的是%20 字符值大于255的字符以%uxxxx格式储存 encodeURI...规则就是上面第二部分所说的,采用utf-8编码。...: @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码,具体的编码规则是和encodeURI函数是一样的 它对应的解码函数是...实验: 利用chrome的开发者工具: 图片.png 可以看到第一种,对需要url编码的部分用encodeURIComponent函数,其他部分编码符合要求,即 对需要编码的参数用encodeURIComponent

1.6K20

番外特别篇之 为什么建议你直接使用UIImage传值?--从一个诡异的相册九图连读崩溃bug谈起

不行,得去看看.一行一行,看代码,从天黑到天亮,从期待到绝望...其实,稍微有一些对比实验常识的人,都很容易猜到: 两种情况,唯一的变量是 图片素材本身,那 最可能 的原因肯定是 图片本身的问题.一种高大上的说法...,是单个N个断点,最终确认了Crash的代码的准确位置.一个for循环,每次step 1,这下很明显地看到内存,几乎是 100M/张的速度在飙升,而图片本身的大小只有 1.5M/张.此处想说的是,打断点也是有技巧的...resultHandler: 替换 requestImageForAsset:targetSize:contentMode:options:resultHandler: 就可以了,前者是直接返回二进制数据,渲染...真没想到,一个UIImage对象,竟然会二次引起高内存占用.最终的解决方法,就是在前一个页面传递 NSData数组,在赋值处,再使用imageWithData:转换为 UIImage.这样,内存使用基本没什么起伏...或许,应该研究下 一个UIImage对象,竟然会二次引起高内存占用 的原因.欢迎大神完善!

1.6K70

【基础进阶】URL详解与URL编码

但是也许每天只是单纯的用,对其只是一知半解,随着工作的展开,发现在日常抓包调试,接口调用,浏览器兼容等许多方面,不深入去理解URL与URL编码则会踩到很多坑。...URL 是 URI 的一个子集。 二者的区别在于,URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)。 端口 与  URL标准格式 何为端口?...,获取我们想要的任意一个部分。...URL 编码 为什么要进行URL编码?通常如果一样东西需要编码,说明这样东西并不适合直接进行传输。...2、非法字符:又如,URL 的编码格式采用的是 ASCII 码,而不是 Unicode,这也就是说你不能在 URL 中包含任何非 ASCII 字符,例如中文。

2.4K90

J2EE前后台传值带中文时乱码

下面的解决方式面对两种问题,至今只遇到了这两种,即两种后台得到值的方式“ 标准的form表单提交,后台用get和set得到文本框的值; 大量重复操作的跳转(比如页面中一个表格里每一行后面有一个删除按钮...id=p "> 单传非中文是没有问题的,但是中文就要改一下,先要执行一个js: "....onclick=”look('...p')“> 添加完onclick属性后,再添加代码: function look( str ){ //在js中首先进行两侧编码,注意是两次,查阅所有网上资料都可以发现,至于为什么,功力未到还不能搞懂...var faultAddr = encodeURI(encodeURI(str)); //需要通过两次编码 window.location.href="xxx.action?...id="+str; } 这相当于在页面传值的时候进行了编码,在后java中得到的是编码两次的变量,所以要进行一次解码,添加: xxx = URLDecoder.decode(xxx, "utf-8"

1.3K30

js解决url传递中文参数乱码问题

场景复现: 做后台管理系统的时候,出现了一个bug:点击“导出数据”按钮,打开文件里面是空的。...(大坑就在这里) 当时尝试了encodeURI 和 decodeURI,以及encodeURIComponent 和 decodeURIComponent方法都没用(一般情况下都是有效果的),后来就是在导出数据接口那里打印...{key}、{form[key]}分别是啥,然后得出undefined,后来尝试加了一个value,没想到就可以了。...escape编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。 escape()函数用于js对字符串进行编码,不常用。 //跳转页 location.href = '....encodeURI编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z encodeURI()用于整个url编码。

16810

36 个JS 面试题为你助力金九银十(面试必读)

let&const关键字是在ES6版本中引入的,其目的是在js中创建两种不同类型的变量,一种是不可变的,另一种是可变的。 const:它用于创建一个不可变变量。...不可变变量是指其值在程序的整个生命周期中永不改变的变量。 let: let用于创建一个可变变量,可变变量是像var这样的普通变量,可以任意次数地更改。 2....,第二个表示截取到的位置(包含该位置) splice(start,length)第一个参数开始位置,第二个参数截取长度 接着看第二个: var x=y=[0,1,2,3,4,5,6,7,8,9] console.log...promise是js中的一个对象,用于生成可能在将来产生结果的值。 值可以是已解析的值,也可以是说明为什么未解析该值的原因。...在严格模式下,咱们不能在声明变量的情况下使用变量。 早期版本的js忽略了“use strict”。 36.解释 JS 事件委托模型? 在JS中,有一些很酷的东西。其中之一是委托模型。

7.2K30

36 个JS 面试题为你助力金九银十(面试必读)

不可变变量是指其值在程序的整个生命周期中永不改变的变量。 let: let用于创建一个可变变量,可变变量是像var这样的普通变量,可以任意次数地更改。 2....,第二个表示截取到的位置(包含该位置) splice(start,length)第一个参数开始位置,第二个参数截取长度 接着看第二个: var x=y=[0,1,2,3,4,5,6,7,8,9] console.log...promise是js中的一个对象,用于生成可能在将来产生结果的值。 值可以是已解析的值,也可以是说明为什么未解析该值的原因。...如何在JS中编码和解码 URL encodeURI() 函数用于在JS中对URL进行编码。它将url字符串作为参数并返回编码的字符串。 注意: encodeURI()不会编码类似这样字符: / ?...在严格模式下,咱们不能在声明变量的情况下使用变量。 早期版本的js忽略了“use strict”。 36.解释 JS 事件委托模型? 在JS中,有一些很酷的东西。其中之一是委托模型。

6K20

JavaScript秘密笔记 第三集

代码段专门用于执行一项任务 为什么: 重用一段代码段! 何时: 只要可能反复使用的代码段,都要先保存在一个函数中,再反复使用函数! 如何: 2步: 1....为什么: 任何函数,不调用,绝不会自动执行! 只有调用,才执行,调用几次,执行几次. 如何: 变量=函数名(参数值列表) 强调: 参数值的顺序和个数要和函数定义时的参数变量列表保持一致!...***作用域(scope): 什么是: 一个变量的可用范围 为什么: 避免两个范围的数据,互相干扰 包括: 2种: 1....,其实只是将原变量中的值复制一个副本给对方: 原始类型的值: 修改新变量的值,不影响原变量 2....中还不能包含保留字: 比如: 冒号: 斜线/ 解决: 用encodeURIComponent()和 decodeURICOmponent() 代替 encodeURI和decodeURI 2.

36920
领券