Base64是否标准化
本文关键字:标准化 是否 Base64 | 更新日期: 2023-09-27 18:21:47
在我工作的公司里,我们有一个类可以转换为Base64字符串。当我第一次看到代码时,我问为什么不使用.NET附带的Convert.ToBase64String?
然后我修改了方法体,只调用Convert.ToBase64String,但它不会生成相同的字符串。
我尝试使用ASCII、UTF8、Unicode和UTF32。
我记不清了,但我认为ASCII会生成一个长度相同但有些字符不同的字符串,而其他的Enconding会生成更大的字符串。
也许我们的实现是错误的,但我发现了一个与我们相匹配的JavaScript实现。
Base64不是便携式的吗?
编辑:我在维基百科上找到了这个,但我不知道是不是原因http://en.wikipedia.org/wiki/Base64#Implementations_and_history
Edit2:我提到编码是因为我们正在将一个字符串转换为另一个字符串。然后,我需要首先使用一些编码将原始字符串转换为字节数组
RFC 3548。不,等等!有一个更新的版本:RFC 4648。(感谢dtb!)
顺便说一句,您似乎在混合base64,它将任何二进制流转换为ASCII流和字符编码,这是完全不同的概念。您可能想阅读这篇关于编码的介绍文章。
至少有10种不同的实现。它们的差异主要在于索引62和63的字符。
http://en.wikipedia.org/wiki/Base64#Implementations_and_history