对 Javascript 中的所有特殊字符进行编码
Encoding all the special characters in Javascript
我必须对我在此处收到的字符串进行编码并将其作为 URL 参数传递,因此我认为我无法传递 / 或括号(因此考虑到我有以下字符串
KEY WEST / Florida(FL)
我正在尝试以下方法
encodeURIComponent("KEY WEST / Florida(FL)")
"KEY%20WEST%20%2F%20Florida(FL)"
escape("KEY WEST / Florida(FL)")
"KEY%20WEST%20/%20Florida%28FL%29"
它们都没有编码我稍后可以在我的代码中解码的字符串,因为第一个保留 () 而第二个保留 /
如何在一次拍摄中完成此操作,然后在需要时对其进行解码?
另外,escape() 似乎已被弃用,因此首选哪种编码方式?
对于URL编码,应该使用encodeURI
和encodeURIComponent
函数。
encodeURI
只对特殊字符进行编码,而encodeURIComponent
也对URL中有意义的字符进行编码,因此用于对查询字符串进行编码,例如。
括号是(如 here 所解释的),但是,允许在 URL 中的任何位置而不对它们进行编码,这就是 encodeURIComponent
保持原样的原因。
escape
函数 can be considered deprecated,虽然它正式不是,但应该避免。
so which way to do the encoding is preferred?
- 整个 URL 秒,
encodeURI
- 对于 URL 个零件,例如片段的查询字符串,
encodeURIComponent
我必须对我在此处收到的字符串进行编码并将其作为 URL 参数传递,因此我认为我无法传递 / 或括号(因此考虑到我有以下字符串
KEY WEST / Florida(FL)
我正在尝试以下方法
encodeURIComponent("KEY WEST / Florida(FL)")
"KEY%20WEST%20%2F%20Florida(FL)"
escape("KEY WEST / Florida(FL)")
"KEY%20WEST%20/%20Florida%28FL%29"
它们都没有编码我稍后可以在我的代码中解码的字符串,因为第一个保留 () 而第二个保留 /
如何在一次拍摄中完成此操作,然后在需要时对其进行解码?
另外,escape() 似乎已被弃用,因此首选哪种编码方式?
对于URL编码,应该使用encodeURI
和encodeURIComponent
函数。
encodeURI
只对特殊字符进行编码,而encodeURIComponent
也对URL中有意义的字符进行编码,因此用于对查询字符串进行编码,例如。
括号是(如 here 所解释的),但是,允许在 URL 中的任何位置而不对它们进行编码,这就是 encodeURIComponent
保持原样的原因。
escape
函数 can be considered deprecated,虽然它正式不是,但应该避免。
so which way to do the encoding is preferred?
- 整个 URL 秒,
encodeURI
- 对于 URL 个零件,例如片段的查询字符串,
encodeURIComponent