Base64编码的字符串URL友好

时间:2016-05-22 12:39:42

标签: javascript base64

我在base64中使用此function javascript解码/编码网址,但我看到很多人都注意到有关使Base64编码的字符串网址友好且对使用

// 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, '/');

jsfiddle

我认为只有+-\_重复,所以重点是什么!我的意思是我为什么要这样做?

1 个答案:

答案 0 :(得分:0)

如果你不想替换他们可能被误解的字符,就像在answer中指出的那样。这将导致显示错误的内容或更有可能不显示任何内容。

解释:
在URL中,保留以下字符:Check dependencies Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier “com.hamooz.JasmineGarden” were found.

与此answer中指出的一样,您需要65个字符来编码数据,但大写,小写字符和数字之和仅为62.因此需要三个额外的字符: / ? # [ ] @ : $ & ' ( ) * + , ; =。这三个是保留的。所以你需要更换它们。截至目前,我并不完全确定+ = /