Base64标准化了吗?

时间:2012-01-30 10:10:04

标签: c# javascript .net base64

在我工作的公司中,我们有类转换为Base64字符串。当我第一次看到代码时,我问为什么不使用.NET附带的Convert.ToBase64String?

然后我修改了方法体,只调用了Convert.ToBase64String,但它没有生成相同的字符串。

我尝试使用ASCII,UTF8,Unicode和UTF32。

我不记得确切,但我认为ASCII生成的字符串长度相同但有些字符不同,其他Enconding会生成更大的字符串。

也许我们的实现是错误的,但我找到了与我们匹配的JavaScript实现。

Base64不是可移植的吗?

编辑:我在维基百科发现了这个,但我不知道是不是原因http://en.wikipedia.org/wiki/Base64#Implementations_and_history

Edit2 :我提到了编码,因为我们正在将字符串转换为另一个字符串。然后我需要首先使用一些编码将原始字符串转换为字节数组

2 个答案:

答案 0 :(得分:10)

RFC 3548.不,等等!有一个更新的:RFC 4648。 (谢谢dtb!)

BTW,你似乎在混合base64,它将任何二进制流转换为ASCII流和字符编码,这是完全不同的概念。您可能需要阅读有关编码的this introduction article

答案 1 :(得分:3)

至少有10种不同的实现方式。它们大多不同于指数62和63的字符。

http://en.wikipedia.org/wiki/Base64#Implementations_and_history