【发布时间】:2020-10-22 11:34:23
【问题描述】:
我正在尝试在 C# 中模拟 android Base64.encode。但是当我比较结果时,我意识到它们是不同的。 Android 结果在字符串末尾有一个/n,但我的结果没有:
Android Result: "gqo+8pdjV2VGRr2Ap5fzVzZTd2Q\n"
C# Result: "gqo+8pdjV2VGRr2Ap5fzVzZTd2Q="
如何防止在 C# 中从 base64 字符串中删除新行?
我在 C# 中使用了简单的 base64 转换,如下所示:
Convert.ToBase64String(data)
android 代码是这样的:
Base64.encodeToString(data,1)
【问题讨论】:
-
自己添加换行符?我无法想象为什么将二进制数据转换为 base64 的方法会将不相关的字符附加到输出中......我的意思是它不是 C# 删除任何东西 - 它是添加它们的 android 函数。
-
我没有看到没有标志的 Android 过载? developer.android.com/reference/android/util/…
-
我无法自己添加。我不知道什么时候应该在字符串末尾添加新行。它不会一直发生。
-
你想破坏 base64 字符串吗?如果您希望能够转换回字符串,则不能修改字符串。
-
@Evk "为什么将二进制数据转换为 base64 的方法会在输出中附加不相关的字符" : "必须表示编码的输出流 每行不超过 76 个字符。解码软件必须忽略表 1 中未找到的所有换行符或其他字符。” - RFC2045 p.24(我强调) -刚刚也知道了:))