Javascript Base64编码字符串URL友好

Javascript Base64编码字符串URL友好,javascript,base64,Javascript,Base64,我在javascript中对base64的URL进行解码/编码,但我看到很多人都在提醒如何使base64编码的字符串URL友好并易于使用 // if this is your Base64 encoded string var str = 'VGhpcyBpcyBhbiBhd2Vzb21lIHNjcmlwdA=='; // make URL friendly: str = str.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/,

我在
javascript
中对
base64
的URL进行解码/编码,但我看到很多人都在提醒如何使base64编码的字符串URL友好并易于使用

// if this is your Base64 encoded string
var str = 'VGhpcyBpcyBhbiBhd2Vzb21lIHNjcmlwdA=='; 

// make URL friendly:
str = str.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, '');

// reverse to original encoding
str = (str + '===').slice(0, str.length + (str.length % 4));
str = str.replace(/-/g, '+').replace(/_/g, '/');


我只看到它用
-
回复
+
,用
-
回复
\
那么这有什么意义呢!我的意思是,如果您不替换可能被误解的字符,我为什么要这样做呢?

,就像本文中指出的那样。这将导致显示错误的内容,或者更可能不显示任何内容

解释:
在URL中保留以下字符:
:/?#[ ] @ : $ & ' ( ) * + , ; =

正如本文所指出的,编码数据需要65个字符,但大写、小写字符和数字的总和只有62个。因此,它需要另外三个字符,它们是
+=/
。这三个是保留的。所以你需要更换它们。到目前为止,我还不能完全确定
-