杰瑞科技汇

Java汉字如何转Unicode?

Java 汉字转 Unicode

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

Java汉字如何转Unicode?-图1
(图片来源网络,侵删)

使用 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));
        }
    }
}

使用 StringcodePointAt() 方法

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();
    }
}

使用 StringgetBytes() 方法(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

注意事项

  1. Java 内部使用 UTF-16 编码,char 类型可以直接表示 Unicode 码点
  2. 对于补充字符(如某些表情符号),需要使用 codePointAt() 方法而不是 charAt()
  3. Unicode 转义序列通常以 \u 开头,后跟4位十六进制数
  4. 方法三和方法四会生成完整的转义序列,而方法一和方法二只是显示每个字符的 Unicode 值

选择哪种方法取决于你的具体需求,是只需要查看 Unicode 值,还是需要生成完整的转义序列字符串。

Java汉字如何转Unicode?-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇