javascript - 何时使用 btoa()、atob()、encodeURIComponent() 和 decodeURIComponent()?

标签 javascript browser encoding

你什么时候使用:

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

atob(encodeURIComponent(...))

如果不是,什么时候使用btoa()atob(),什么时候使用encodeURIComponent()decodeURIComponent( ) 被使用?

最佳答案

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 栏”

您很少需要对同一个字符串同时使用 URL 编码和 base-64。

关于javascript - 何时使用 btoa()、atob()、encodeURIComponent() 和 decodeURIComponent()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46206618/

相关文章:

javascript - 使用 Rxjs,寻找用于组合数组流的更清洁的解决方案

javascript - 如何将D3js图表放置在网格系统中?

javascript - Lab.js 和 jQuery 与 $(window).load(function() 过早触发

javascript - Sencha Touch Checkbox 选择标签点击

javascript - 我们应该有浏览器端验证吗

html - 如何在 HTML 中用 <tbody> 完全填充 <table> 100%?

css - 控制@font-face 浏览器下载

http - Haskell http响应结果不可读

javascript - 如何测试一个字符串是否是有效的UTF16字符串?

ruby-on-rails - Encoding::CompatibilityError(不兼容的字符编码:UTF-8 和 ASCII-8BIT)- 将文件上传到 Heroku 时