温馨提示×

温馨提示×

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

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

Java Unicode统一码如何转换

发布时间:2026-08-07 15:58:53 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 Java 里,“Unicode 转换”通常指 字符串 ↔ Unicode 转义序列(\uXXXX) 之间的互相转换。下面按常见场景给你说明。


一、什么是 Unicode 转义(\uXXXX)

Java 中 \u 表示 Unicode 码点,例如:

\u4e2d = 中
\u6587 = 文

Java 编译器在 编译阶段 就会把 \u 转义成对应字符。


二、字符串 → Unicode 转义(中文 → \uXXXX)

方法 1:手动转换(推荐理解原理)

public class UnicodeUtil {

    public static String toUnicode(String str) {
        StringBuilder sb = new StringBuilder();
        for (char c : str.toCharArray()) {
            if (c > 127) {
                sb.append(String.format("\\u%04x", (int) c));
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        System.out.println(toUnicode("中文"));
    }
}

输出:

\u4e2d\u6587

方法 2:使用 Apache Commons Text(企业常用)

import org.apache.commons.text.StringEscapeUtils;

String result = StringEscapeUtils.escapeJava("中文");
System.out.println(result);

输出:

\u4e2d\u6587

三、Unicode 转义 → 字符串(\uXXXX → 中文)

方法 1:使用 Properties(最简单)

import java.io.*;
import java.util.Properties;

public class UnicodeDecode {

    public static String unicodeToStr(String unicode) throws Exception {
        Properties p = new Properties();
        String input = "k=" + unicode;
        p.load(new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8)));
        return p.getProperty("k");
    }

    public static void main(String[] args) throws Exception {
        System.out.println(unicodeToStr("\\u4e2d\\u6587"));
    }
}

输出:

中文

方法 2:正则解析(不依赖第三方库)

import java.util.regex.*;

public class UnicodeDecode {

    public static String unicodeToStr(String str) {
        Pattern pattern = Pattern.compile("\\\\u([0-9a-fA-F]{4})");
        Matcher matcher = pattern.matcher(str);
        StringBuffer sb = new StringBuffer();
        while (matcher.find()) {
            int code = Integer.parseInt(matcher.group(1), 16);
            matcher.appendReplacement(sb, String.valueOf((char) code));
        }
        matcher.appendTail(sb);
        return sb.toString();
    }

    public static void main(String[] args) {
        System.out.println(unicodeToStr("\\u4e2d\\u6587"));
    }
}

四、Java 原生字符已经是 Unicode

Java 的 charString 本身就是 UTF-16(Unicode)

String s = "中文";
System.out.println(s.length()); // 2

所以:

  • 不需要“把字符串转成 Unicode”
  • 真正的转换通常只是 显示或存储为 \uXXXX

五、常见误区

❌ 错误理解:

“Java 字符串不是 Unicode,需要转换”

✅ 正确理解:

Java 字符串是 Unicode,\uXXXX 只是 文本表示形式


六、总结对照表

需求 推荐方式
中文 → \uXXXX 手动循环 / Apache Commons
\uXXXX → 中文 Properties / 正则
字符编码问题 UTF-8 / UTF-16
理解原理 Java String 就是 Unicode

如果你有 具体场景(如:
✅ JSON 中的 Unicode
✅ 文件读写乱码
✅ 网络传输
✅ 数据库存储)
可以把场景贴出来,我可以给你更精准的示例。

向AI问一下细节

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

AI