encoding - Base64解码给出不同的结果

标签 encoding character-encoding base64

我正在做一个小型 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/

相关文章:

json - Golang 编码/json 编码添加 null

objective-c - iPhone XML 发布到网络服务 - 一些 GUID 显示为亚洲字符

php - UTF-8 编码的 html 页面显示 �(问号)而不是字符

c# - System.FormatException : 'Invalid length for a Base-64 char array or string.'

javascript - 使用 Base64 上传图像的 Struts2 Action 表单数据最大大小

php - preg_replace UTF-8 不起作用

python - StringIO 生成的包含 BOM 的 csv 文件

javafx - 如何在 javafx 表中显示欧元货币符号 €

MySQL连接字符集问题

javascript - 使用 Javascript 减少 base64 图像内存大小