У меня проблемы при попытке кодировать String
в Java.
У меня есть следующий код на 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
Во второй попытке я использовал кодер BouncyCastle Base64
:
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
Кто-нибудь знает, что может происходить?