【发布时间】:2012-02-22 03:37:07
【问题描述】:
在我工作的公司中,我们有类可以与 Base64 字符串进行转换。第一次看到代码的时候,我问为什么不用.NET自带的Convert.ToBase64String?
然后我将方法体修改为只调用 Convert.ToBase64String,但它不会生成相同的字符串。
我尝试使用 ASCII、UTF8、Unicode 和 UTF32。
我记不太清了,但我认为 ASCII 生成的字符串长度相同,但有些字符不同,而另一些 Enconding 生成的字符串更大。
也许我们的实现是错误的,但我找到了一个与我们匹配的 JavaScript 实现。
Base64 不是可移植的吗?
编辑:我在 Wikipedia 上找到了这个,但我不知道这是否是原因 http://en.wikipedia.org/wiki/Base64#Implementations_and_history
Edit2:我提到编码是因为我们将一个字符串转换为另一个字符串。然后我需要首先使用某种编码将我的原始字符串转换为字节数组
【问题讨论】:
-
我以为是,所以我正在饶有兴趣地看这个。
-
是的,听起来他们可能出于某种原因正在使用自定义实现。 tools.ietf.org/html/rfc4648
-
将字节序列转换为 Base64 字符串不涉及 ASCII、UTF-8 或 Unicode。
-
@dtb 我忘了说,我们使用的方法是将字符串转换为另一个字符串,而不是字节数组。
-
一些代码会很有帮助:)
标签: c# javascript .net base64