我在想...
(除了在查询字符串中使用base64加号“+”的问题 - 它被转换为“空格”,可以通过 %2b 来解决) :--->在查询字符串中传输数据的首选方法是什么?
这两个功能都可以通过JS命令使用:
btoa
encodeUriComponent
所以我在自问(也在问你):
何时应该使用哪个? (我一直凭直觉使用 encodeUriCompoonent
)。
问题在于它们的定义不同,但实现方式可以相似......
编辑
我认为我已经找到了提出问题的原因....(以及为什么之前没有人问)
userid=1
,也可以使用 encodeURIComponent ... 我正在寻找它们之间的区别。 - Royi Namirbtoa('::')
变成Ojo=
,而encodeURIComponent('::')
变成%3A%3A
- 并且随着字符计数的增加而急剧上升。 - lucideerbtoa('::')
更通用的是需要执行 'btoa(encodeURIComponent(realWorldString))',否则 btoa 将无法工作。您所描述的情况是输入到 '::' 的内容甚至没有一个字符在纯 ASCII 之外。即使是 U+0100 也会出问题。一旦您需要编码(即超过 ASCII),您仍然需要使用 encodeURIComponent,并且大小会相加,比较就没有太多意义了。 - humanityANDpeace