Java 汉字转 Unicode
在 Java 中,将汉字转换为 Unicode 编码可以通过以下几种方法实现:

使用 Character 类
public class ChineseToUnicode {
public static void main(String[] args) {
String chinese = "你好,世界!";
for (int i = 0; i < chinese.length(); i++) {
char c = chinese.charAt(i);
System.out.println("字符: " + c + " 的Unicode是: \\u" + Integer.toHexString(c));
}
}
}
使用 String 的 codePointAt() 方法
public class ChineseToUnicode {
public static void main(String[] args) {
String chinese = "你好,世界!";
for (int i = 0; i < chinese.length(); i++) {
int codePoint = chinese.codePointAt(i);
System.out.println("字符: " + chinese.charAt(i) + " 的Unicode是: \\u" + Integer.toHexString(codePoint));
}
}
}
将整个字符串转换为 Unicode 转义序列
public class ChineseToUnicode {
public static void main(String[] args) {
String chinese = "你好,世界!";
String unicodeEscaped = escapeUnicode(chinese);
System.out.println("Unicode转义序列: " + unicodeEscaped);
}
public static String escapeUnicode(String input) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
sb.append("\\u").append(String.format("%04x", (int) c));
}
return sb.toString();
}
}
使用 String 的 getBytes() 方法(UTF-16)
public class ChineseToUnicode {
public static void main(String[] args) {
String chinese = "你好,世界!";
byte[] bytes = chinese.getBytes("UTF-16BE"); // 使用大端序
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i += 2) {
int codePoint = ((bytes[i] & 0xFF) << 8) | (bytes[i+1] & 0xFF);
sb.append("\\u").append(String.format("%04x", codePoint));
}
System.out.println("Unicode转义序列: " + sb.toString());
}
}
输出示例
对于输入 "你好,世界!",以上方法会输出类似以下内容:
字符: 你 的Unicode是: \u4f60
字符: 好 的Unicode是: \u597d
字符: , 的Unicode是: \uff0c
字符: 世 的Unicode是: \u4e16
字符: 界 的Unicode是: \u754c
字符: ! 的Unicode是: \uff01
或者完整的 Unicode 转义序列:
Unicode转义序列: \u4f60\u597d\uff0c\u4e16\u754c\uff01
注意事项
- Java 内部使用 UTF-16 编码,
char类型可以直接表示 Unicode 码点 - 对于补充字符(如某些表情符号),需要使用
codePointAt()方法而不是charAt() - Unicode 转义序列通常以
\u开头,后跟4位十六进制数 - 方法三和方法四会生成完整的转义序列,而方法一和方法二只是显示每个字符的 Unicode 值
选择哪种方法取决于你的具体需求,是只需要查看 Unicode 值,还是需要生成完整的转义序列字符串。

