我在尝试String
用 Java 对 a 进行编码时遇到了麻烦。
我在 C# 中有以下代码和string
Bpz2Gjg01d7VfGfD8ZP1UA==,当我执行 C# 代码时,我得到:
QnB6MkdqZzAxZDdWZkdmRDhaUDFVQT090
public static void Main(string[] args)
{
string strWord = "Bpz2Gjg01d7VfGfD8ZP1UA==";
byte[] encbuff = Encoding.UTF8.GetBytes(strWord);
string strWordEncoded = HttpServerUtility.UrlTokenEncode(encbuff);
Console.WriteLine(strWordEncoded);
}
我试图在 Java 中复制以前的代码,在第一次尝试中我使用了javax.xml.bind.DatatypeConverter
Class
:
public static void main(String[] args) {
String strWord = "Bpz2Gjg01d7VfGfD8ZP1UA==";
byte[] encbuff = strWord.getBytes(StandardCharsets.UTF_8);
String strWordEncoded = DatatypeConverter.printBase64Binary(encbuff);
System.out.println(strWordEncoded);
}
但我得到以下信息String
(与 C# 相比缺少最后一个零string
):
QnB6MkdqZzAxZDdWZkdmRDhaUDFVQT09
在我的第二次尝试中,我使用了 BouncyCastleBase64
编码器:
public static void main(String[] args) {
String strWord = "Bpz2Gjg01d7VfGfD8ZP1UA==";
byte[] encbuff = strWord.getBytes(StandardCharsets.UTF_8);
String strWordEncoded = new String(Base64.encode(encbuff));
System.out.println(strWordEncoded);
}
但是我得到了完全相同的前一个String
(仍然缺少最后一个零):
QnB6MkdqZzAxZDdWZkdmRDhaUDFVQT09
有谁知道可能会发生什么?