第一:
- 选择编码。UTF-8通常是一个不错的选择;坚持编码,这肯定会在两端都有效。很少使用 UTF-8 或 UTF-16 以外的其他方法。
发射端:
- 将字符串编码为字节(例如
text.getBytes(encodingName)
)
- 使用类将字节编码为 base64
Base64
- 传输底座64
接收端:
- 接收 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);