我在想...
(除了与BASE64的加号“+”号在查询字符串的问题-它被传递给“空间”,并且可以通过%2B来解决):--->这是在查询字符串传送数据的优选方法是什么?
这两种功能可以通过JS命令中使用:
所以即时问自己(和你):
当我应该用什么 ? (我总是使用encodeUriCompoonent
-凭本能)。
该定义是不同的问题 - 但实现可以是相似的...
编辑
我认为,香港专业教育学院发现问这个......(为什么没有人问过它)
BASE64用于传送二进制数据。 (在IE中,不支持,不能编码空间字符)。
encodeURIComponent方法只有特殊字符编码。
一个有趣的事情是,你不能没有encodeURIComponent方法适用于的base64 unicode字符串: https://developer.mozilla.org/en/DOM/window.btoa
这个问题的答案完全取决于你的服务器端应用程序。
“+”不翻译到客户端“空间” -这是自动翻译的一些服务器端的应用程序,以“空间”,主要是为了向后兼容的原因(反过来说,一些服务器端的应用程序将保留为“+” '+'符合RFC3986 )。
至于客户而言- btoa()
和encodeURIComponent()
和encodeURI()
和escape()
刚编码根据不同的编码或逸出算法的文本的字符串转换成不同的抽象的串- btoa()
通常产生最小的使用base64编码,但得到的线梅兹的评论回复:unicode是值得考虑这里。
需要注意的重要一点是你的服务器端应用程序(某些基于ASP.NET的安装在你的情况),然后使用到它的原始形式,以该字符串解码回。
FWIW,我用的base64每当我需要运输任何可以是Unicode,服务器和客户端之间。 进行urlencode不处理所有Unicode charachters那么好。 它迅速得到了所有百分号一塌糊涂。
因此,在短期:期待Unicode输入/输出,始终BASE64运输。