温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Unicode统一码怎么读取

发布时间:2026-10-29 01:22:10 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Java 中,“Unicode 统一码”通常有两种理解:

  1. 如何读取/解析 Unicode 转义字符(如 \u4E2D)
  2. 如何在 Java 中正确读取包含 Unicode 编码的文本文件(UTF‑8 / UTF‑16 等)

下面分别说明。


一、Java 中的 Unicode 转义(\uXXXX)

Java 源码本身就支持 Unicode 转义:

char c = '\u4E2D'; // 中
System.out.println(c);

将字符串中的 Unicode 转义解析为字符

如果字符串里是 "\\u4E2D"(文本形式),可以用工具类解析:

public class UnicodeUtil {
    public static String decodeUnicode(String str) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.length(); ) {
            if (i + 6 <= str.length() &&
                str.charAt(i) == '\\' && str.charAt(i + 1) == 'u') {
                String hex = str.substring(i + 2, i + 6);
                sb.append((char) Integer.parseInt(hex, 16));
                i += 6;
            } else {
                sb.append(str.charAt(i));
                i++;
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        System.out.println(decodeUnicode("\\u4E2D\\u6587")); // 中文
    }
}

二、读取 Unicode 编码的文件(最常见)

1️⃣ 读取 UTF‑8 文件(推荐)

import java.nio.file.*;
import java.nio.charset.StandardCharsets;

public class ReadUtf8 {
    public static void main(String[] args) throws Exception {
        String text = Files.readString(
            Paths.get("test.txt"),
            StandardCharsets.UTF_8
        );
        System.out.println(text);
    }
}

2️⃣ 读取 UTF‑16 文件

String text = Files.readString(
    Paths.get("test.txt"),
    StandardCharsets.UTF_16
);

3️⃣ 自动识别 BOM(UTF‑8 with BOM)

import java.io.*;
import java.nio.charset.*;

public class ReadBom {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("test.txt");
        InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
        BufferedReader br = new BufferedReader(isr);

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    }
}

三、获取字符的 Unicode 码点

String s = "中";
int codePoint = s.codePointAt(0);
System.out.println(Integer.toHexString(codePoint)); // 4e2d

四、常见坑提醒

✅ Java 内部字符串 始终是 UTF‑16
✅ 文件读取一定要指定字符集
❌ 不要用默认编码(new InputStreamReader(in))


如果你是指:

  • “解析 JSON / 网络返回的 Unicode”
  • “从 Properties 文件读取 Unicode”
  • “Java 读取 Emoji(辅助平面)”

可以告诉我具体场景,我可以给你更精确的代码。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手