在Java中,可以使用String
类的getBytes
方法将字符串转换为UTF-16编码的字节数组。UTF-16是一种字符编码方案,用于表示Unicode字符集中的字符。它使用16位(2字节)的编码单元来表示大多数字符,但对于一些辅助平面字符,则需要使用两个16位的编码单元(即4字节)。
以下是将字符串转换为UTF-16表示的示例代码:
public class UTF16Example {
public static void main(String[] args) {
String originalString = "Hello, 世界!";
try {
// 获取UTF-16编码的字节数组
byte[] utf16Bytes = originalString.getBytes("UTF-16");
// 打印转换后的字节数组
System.out.println("UTF-16 Bytes: " + bytesToHex(utf16Bytes));
// 将字节数组转换回字符串以验证
String convertedString = new String(utf16Bytes, "UTF-16");
System.out.println("Converted String: " + convertedString);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
// 辅助方法:将字节数组转换为十六进制字符串
private static String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%02X ", b));
}
return sb.toString();
}
}
CharsetEncoder
和CharsetDecoder
来明确指定字节序。CharsetEncoder
和CharsetDecoder
来明确指定字节序。通过上述方法和示例代码,可以有效地将字符串转换为Java中的UTF-16表示,并处理相关的问题。
领取专属 10元无门槛券
手把手带您无忧上云