【发布时间】:2017-12-21 23:35:50
【问题描述】:
在 C# 中,我可以将一个字符串传递给Convert.FromBase64String(String string),它返回一个byte[]。以下面的代码为例:
string key = "lRixPxNRmNOTxB2npoa5zCZR2I/GkuCndWtcRS/w4CI=";
byte[] KeyBytes = Convert.FromBase64String(key);
Console.WriteLine(KeyBytes.Length); //output 32
如果我在 java 中使用 java.util.Base64 库尝试同样的事情,
它看起来像这样:
String key = "lRixPxNRmNOTxB2npoa5zCZR2I/GkuCndWtcRS/w4CI=";
byte[] base64KeyBytes = Base64.getEncoder().encode(key.getBytes(UTF_8));
System.out.println(base64KeyBytes.length); //output 60
Java encode 方法需要 byte[] 类型作为参数,我认为这就是我的问题的根源。
无论如何,Java 中是否有一种方法可以产生与 C# 中相同的输出?
【问题讨论】:
-
确定要在此处解码?
-
可能 .net 版本使用不同于 utf-8 的平台默认编码,例如 iso-8859。