在 Java 里,Unicode(统一码)可以理解为:Java 的字符串、字符、源码本身,默认就是基于 Unicode 的。下面从概念 + 常见用法 + 示例给你一个清晰说明。
✅ Java 内部使用 UTF-16 表示字符
✅ char 类型 = 16 位 Unicode 编码单元
✅ String 本质是 Unicode 字符序列
✅ Java 源码文件默认支持 Unicode(推荐 UTF-8)
public class Demo {
public static void main(String[] args) {
String s = "你好,世界!";
System.out.println(s);
}
}
✅ 这是最标准的用法
✅ 只要文件编码是 UTF-8,就没问题
\uXXXXUnicode 转义格式:
\u + 4位十六进制
public class Demo {
public static void main(String[] args) {
String s = "\u4F60\u597D"; // 你好
System.out.println(s);
}
}
| 字符 | Unicode |
|---|---|
| 你 | \u4F60 |
| 好 | \u597D |
✅ 适合:
⚠️ 不推荐大量用在业务代码里(可读性差)
char c = 'A'; // 普通字符
char c2 = '\u0041'; // 也是 A
System.out.println(c == c2); // true
Unicode 范围:
\u0000 ~ \uFFFF(基本多文种平面)char c = '中';
System.out.println(Character.isLetter(c)); // true
System.out.println(Character.isDigit(c)); // false
System.out.println(Character.isWhitespace(c)); // false
✅ Java 的 Character 类就是基于 Unicode 标准的
String s = "你好";
byte[] bytes = s.getBytes("UTF-8");
String s2 = new String(bytes, "UTF-8");
⚠️ 不写编码时,用的是系统默认编码,容易出问题
✅ 推荐始终显式写 "UTF-8"
✅ 实际是 UTF-16
Java 内部是 UTF-16,外部常用 UTF-8
| 场景 | 推荐方式 |
|---|---|
| 写中文/日文/表情 | 直接写 |
| 源码不能写中文 | \uXXXX |
| 网络/文件传输 | UTF-8 |
| 判断字符类型 | Character 类 |
| 转字节 | getBytes("UTF-8") |
public class UnicodeDemo {
public static void main(String[] args) throws Exception {
String s = "Java 统一码 \u2714";
System.out.println(s);
byte[] utf8 = s.getBytes("UTF-8");
String back = new String(utf8, "UTF-8");
System.out.println(back);
}
}
如果你愿意,我可以:
你可以直接说你用在哪(比如:Web、Android、文件解析)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。