JavaScript 中 encodeURI 和 decodeURI 方法使用介绍
在 JavaScript 中,encodeURI
和 decodeURI
方法可以用于编码和解码 URI,以便在 URL 中传输特殊字符或非 ASCII 字符。本文将详细介绍这两种方法的使用。
encodeURI 方法
encodeURI
可以将 URL 中除了 字母、数字、(、)、*、-、.、_、~
以外的所有字符进行编码。
语法:
encodeURI(URI)
其中,URI
表示需要编码的文本。
示例1:
const url = 'https://www.example.com/search?keyword=你好'
const encodedUrl = encodeURI(url)
console.log(encodedUrl)
// 输出 "https://www.example.com/search?keyword=%E4%BD%A0%E5%A5%BD"
上面的示例将 https://www.example.com/search?keyword=你好
进行了编码,将其中的中文字符修改为 %E4%BD%A0%E5%A5%BD
。这样,在 URL 中就可以传输中文字符了。
示例2:
const str = 'programming + is & fun'
const encodedStr = encodeURI(str)
console.log(encodedStr)
// 输出 "programming%20%2B%20is%20%26%20fun"
此示例中的字符串包含了 +
和 &
字符,通过 encodeURI
方法进行编码后分别被转换为 %20%2B%20
和 %20%26%20
。
需要注意的是,encodeURI
方法并不会将字符 #
编码为 %23
,因为 #
在 URL 中有特殊的作用,表示锚点。如果需要对 #
进行编码,可以使用 encodeURIComponent
方法。
decodeURI 方法
与 encodeURI
方法相对的是 decodeURI
方法,可以将被编码的 URI 进行解码。
语法:
decodeURI(encodedURI)
其中,encodedURI
表示需要解码的 URI。
示例:
const encodedUrl = 'https://www.example.com/search?keyword=%E4%BD%A0%E5%A5%BD'
const decodedUrl = decodeURI(encodedUrl)
console.log(decodedUrl)
// 输出 "https://www.example.com/search?keyword=你好"
此示例将示例1中的编码后 URL 用 decodeURI
进行解码,转换为原本的中文字符。
需要注意的是,在某些情况下,被编码的 URI 可能存在不严格符合 URI 规范的字符(例如空格会被替换为 %20
),在这些情况下,使用 decodeURI
方法可能会抛出错误,应当使用 decodeURIComponent
方法进行解码。
总结
encodeURI
和 decodeURI
是 JavaScript 中用于 URI 编码和解码的方法,可以将特殊字符或非 ASCII 字符转换为 URL 可以识别的形式。这两种方法可用于构建 URL,发送网络请求等日常开发场景中。同时,encodeURI
方法不会对 #
进行编码,需要进行编码的情况下应当使用 encodeURIComponent
方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript中encodeURI和decodeURI方法使用介绍 - Python技术站