在Java和C#之间编码和解码Base64字符串

时间:2018-04-10 14:30:00

标签: java c# base64

我遇到了base64字符串之间转换的问题,我有一个C#web API服务,它接收一个Base64编码的字符串。到那个服务我现在正在消费Android(Java)所以当我编码一个字符串到Base64并发送到C#服务它恢复正常我添加了一个断点当我使用在线解码器解码它它给了我正确的结果,但我的C# Web Api服务无法正确解码。

以下是Code Sinpet请帮助我摆脱它谢谢。

Java代码:将字符串转换为Base64

 bytesEncoded = Base64.encode(string.getBytes("UTF-8"), Base64.DEFAULT);

C#代码解码:

  byte[] buffer = new byte[jsonString.Length];
  String str2 = Convert.ToBase64String(Encoding.UTF8.GetBytes(jsonString));

收到C#: enter image description here

1 个答案:

答案 0 :(得分:2)

您的jsonString似乎是基数为64;在这种情况下,你可能想要:

byte[] buffer = Convert.FromBase64String(jsonString);

为您提供最初序列化为base-64的相同数据。

请注意,原始数据看起来像是utf8字符串,在这种情况下:

var s = Encoding.UTF8.GetString(buffer);