我有一个相当标准的方法,可以在通过线路将字符串发送到客户端之前对字符串进行 Base64 编码。当通信采用 SOAP 时,一切工作正常,但现在一切都通过 .NET 版本的 JSON 运行,base64 解码会出现错误:
输入不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符或填充字符中包含非法字符。
我注意到 .NET 在字符串的开头和结尾添加了一个\",所以我删除了它们,然后检查了长度,发现它不是 4 的倍数,所以我根据需要填充了开头和结尾带有等号 - 没有任何帮助。无论我做什么,我仍然会遇到上面提到的相同错误。
我陷入了困境,没有其他人对类似问题的回答有帮助 - 有什么想法(并且,不,我无法摆脱 .NET...)?
来自服务器的字符串是:
zkWv1UuGZX08g1s/k/Rp4edZJ/QkuQO88HxpWtpsSfZt4kdWotuqzDy7+YgrB/JUdmuU7FB7thtK1yah+bW0CL3NPP/WGeQHjL/pvpoaOVAiDODnXOvONwuMINpSTa6HvxHj5mJxDvIoEhUwzchFfxfjnDW6tGutBRCBhGHYTK4=
在我修改之前客户端收到的字符串是:
\"zkWv1UuGZX08g1s\/k\/Rp4edZJ\/QkuQO88HxpWtpsSfZt4kdWotuqzDy7+YgrB\/JUdmuU7FB7thtK1yah+bW0CL3NPP\/WGeQHjL\/pvpoaOVAiDODnXOvONwuMINpSTa6HvxHj5mJxDvIoEhUwzchFfxfjnDW6tGutBRCBhGHYTK4=\"
最佳答案
问题是 JSON 转义了一堆字符,而返回的字符串转义了它自己的字符集。这里有一些关于流式传输 WCF JSON 响应的精彩帖子,可以帮助返回,但没有任何内容可以解决传入问题。我从 JSON 切换到 XML。
关于c# - 使用 .NET 进行 JSON 和 Base64 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662273/