一尘不染

Base 64编码和解码示例代码

java

有谁知道如何使用Base64在Base64中解码和编码字符串。我正在使用以下代码,但无法正常工作。

String source = "password"; 
byte[] byteArray = source.getBytes("UTF-16"); 
Base64 bs = new Base64(); 
//bs.encodeBytes(byteArray); 
System.out.println( bs.encodeBytes(byteArray)); 
//bs.decode(bs.encodeBytes(byteArray));
System.out.println(bs.decode(bs.encodeBytes(byteArray)));

阅读 346

收藏
2020-03-05

共1个答案

一尘不染

第一:

  • 选择一种编码。通常,UTF-8是一个不错的选择。坚持绝对对双方都有效的编码。除了UTF-8或UTF-16之外,很少使用其他东西。
    传输端:

  • 将字符串编码为字节(例如text.getBytes(encodingName)

  • 使用Base64该类将字节编码为base64
  • 传输base64

接收端:

  • 接收base64
  • 使用Base64该类将base64解码为字节
  • 将字节解码为字符串(例如new String(bytes, encodingName)

所以像这样:

// Sending side
byte[] data = text.getBytes("UTF-8");
String base64 = Base64.encodeToString(data, Base64.DEFAULT);

// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, "UTF-8");

或搭配StandardCharsets

// Sending side
byte[] data = text.getBytes(StandardCharsets.UTF_8);
String base64 = Base64.encodeToString(data, Base64.DEFAULT);

// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, StandardCharsets.UTF_8);
2020-03-05