Base64是否标准化?

8
在我工作的公司里,我们有一个班级来转换Base64字符串。当我第一次看到代码时,我问为什么不使用.NET自带的Convert.ToBase64String呢?
然后我修改了方法体,只是调用Convert.ToBase64String,但它不生成相同的字符串。
我尝试使用ASCII、UTF8、Unicode和UTF32。
我不记得确切的情况,但我认为ASCII生成一个相同长度但一些字符不同的字符串,其他编码生成更大的字符串。
也许我们的实现有问题,但我找到了一个与我们匹配的JavaScript实现。
Base64不是可移植的吗?
编辑:我在维基百科上找到了这个,但我不知道是否是原因 http://en.wikipedia.org/wiki/Base64#Implementations_and_history 编辑2:我提到编码,因为我们正在将一个字符串转换为另一个字符串。然后我需要首先使用某种编码将我的原始字符串转换为字节数组。

我认为是这样,所以我很感兴趣地观察着。 - Reinstate Monica Cellio
听起来他们可能因为某些原因在使用自定义实现。http://tools.ietf.org/html/rfc4648 - Will
4
将一系列字节转换为Base64字符串与ASCII、UTF-8或Unicode无关。 - dtb
@dtb 我忘了说,我们使用的方法将一个字符串转换为另一个字符串,而不是字节数组。 - Felipe Pessoto
@dtb 我理解的恰好相反。如果我将一个字节数组转换为Base64,由于像Serge(RFC 3548和4648)和维基百科所提到的不同实现方式,我仍然会得到不同的结果。 - Felipe Pessoto
显示剩余6条评论
2个回答

10
RFC 3548。等等!有更新的版本:RFC 4648。(谢谢 dtb!)此外,您似乎混淆了base64和字符编码,这是完全不同的概念。您可能想阅读有关编码的介绍文章。请注意保留原文中的html标签。

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接