何时使用btoa(),atob(),encodeURIComponent()和decodeURIComponent()?

hel*_*lfi 2 javascript browser encoding

你什么时候用?

它们应该一起使用,例如:

atob(encodeURIComponent(...))
Run Code Online (Sandbox Code Playgroud)

如果没有,何时将btoa()atob()使用,当将encodeURIComponent()decodeURIComponent()使用?

Bar*_*mar 5

btoa()以base-64格式编码一串二进制数据.最常见的用途是data:从文件内容创建URI(例如,将JPEG或GIF文件转换为data:直接合并到页面中而不是引用远程文件的URI).

atob() 执行相反的操作:给定base-64字符串,它返回二进制数据.

encodeURIComponent()用于执行将在URI中使用的字符串的URL编码.这会将URI中具有特殊含义的字符转换%为十六进制编码,例如空格变为%20.这通常在创建将在重定向或AJAX请求中使用的URL参数或将要发送的数据时使用XMLHTTPRequest.send().

decodeURIComponent()执行相反的操作encodeURIComponent(),所以如果你有"foo%20bar"它将返回"foo bar".

很少需要将URL编码和base-64一起用于同一个字符串.