在我工作的公司,我们有班级可以转换成Base64字符串。当我第一次看到代码时,我问为什么不使用.NET附带的Convert.ToBase64String?Base64是否标准化?
然后我修改了方法体来调用Convert.ToBase64String,但它不会生成相同的字符串。
我试过使用ASCII,UTF8,Unicode和UTF32。
我不记得确切,但我认为ASCII生成一个长度相同但字符串不同的字符串,而其他字符生成更大的字符串。
也许我们的实现是错误的,但是我发现一个与我们相匹配的JavaScript实现。
不是Base64便携式?
编辑:我发现这个在维基百科,但我不知道这是否是原因http://en.wikipedia.org/wiki/Base64#Implementations_and_history
EDIT2:我刚才提到的编码,因为我们是一个字符串转换为另一种。然后,我需要首先将我的原始字符串转换为使用某种编码的字节数组。
我认为这是,所以我看这个感兴趣。 – Archer 2012-01-30 10:11:36
这听起来像是因为某种原因他们正在使用自定义实现。 http://tools.ietf.org/html/rfc4648 – Will 2012-01-30 10:13:37
将字节序列转换为Base64字符串不涉及ASCII,UTF-8或Unicode。 – dtb 2012-01-30 10:18:07