在 Java 中,**“用 Unicode 统一码”**通常指两种场景:
1️⃣ 在代码中表示 Unicode 字符
2️⃣ 处理(读写/转换)Unicode 编码的文本
下面分点说明,都是 Java 实际开发中常用的方式。
\uXXXXJava 支持直接用 Unicode 码点表示字符:
char c = '\u4E2D'; // 中
System.out.println(c); // 输出:中
字符串也可以:
String s = "\u4F60\u597D"; // 你好
System.out.println(s);
✅ 适合:
只要源码是 UTF-8,直接用字符更清晰:
char c = '中';
String s = "你好";
⚠️ 注意:
javac -encoding UTF-8 Test.java
int codePoint = '中'; // 20013
System.out.println(Integer.toHexString(codePoint)); // 4e2d
或:
int cp = "A".codePointAt(0);
String s = new String(Character.toChars(0x4E2D));
System.out.println(s); // 中
✅ 适合处理 emoji / 生僻字(超过 BMP)
⚠️ 重要事实:
Java 的
String内部始终使用 UTF-16(Unicode)
String s = "你好";
byte[] utf8 = s.getBytes(StandardCharsets.UTF_8);
String s = "你好";
byte[] bytes = s.getBytes(StandardCharsets.UTF_8);
String s = new String(bytes, StandardCharsets.UTF_8);
\u4e2d)如果你从配置文件或网络拿到的是 "\u4e2d" 这种字符串:
String raw = "\\u4e2d";
String result = raw.replace("\\u", "");
char c = (char) Integer.parseInt(result, 16);
System.out.println(c);
或用 Apache Commons Text:
StringEscapeUtils.unescapeJava("\\u4e2d");
❌ “Java 用 Unicode 编码存储文件”
✅ 否,文件编码是 UTF-8 / GBK 等,String 才是 Unicode
❌ “char 能表示所有 Unicode”
✅ 否,char 是 UTF-16 单元,emoji 需要两个 char
Java 天然使用 Unicode(UTF-16),你可以用
\uXXXX写字符,用codePoint处理完整 Unicode,用StandardCharsets.UTF_8做外部编码转换。
如果你指的是 “统一码(Unicode)规范化”、“emoji 处理” 或 “中文乱码解决”,可以告诉我具体场景,我可以给更针对性的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。