我正在做一个小型 Streamserve 项目(google it :P),我在其中获得了一些 Base64 编码的内容。我尝试使用多个解码器解码 base64 字符串,并且都返回正确的结果。除了 Streamserve 中的 Base64DecodeString 方法。
编码字符串为:'VABlAHMAdABpAG4AZwAgAGIAYQBzAGUANgA0AA==' 预期结果为:'Testing base64'
但是在 Streamserve 中,结果是:'Tsig ae4'
它只是跳过所有其他字母。现在我知道大多数人不知道 Streamserve,但我有一种预感,这可能是字符编码问题..问题,希望有人知道这里可能发生了什么。
我可以毫无问题地在 streamserve 中编码/解码字符串..只是不是我作为输入获得的字符串
最佳答案
问题是您使用 UTF-16 编码并解码回 ASCII 或 UTF8。在将字符串编码为 base64 之前将字符串编码更改为 UTF8,它应该可以正常工作。
这是该 base64 blob 的十六进制转储:
54 00 65 00 73 00 74 00 69 00 6e 00 67 00 20 00 62 00 61 00 73 00 65 00 36 00 34 00
如果你删除空字节,你会得到这个:
54 65 73 74 69 6e 67 20 62 61 73 65 36 34
转换为以下 ASCII 文本:
Testing base64
关于encoding - Base64解码给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340715/