如何在 Java 中将代理字符打印为整数

How to print surrogate chars as ints in Java

我有这个:

char c = "\ud804\udef4".charAt(0);
char d = "\ud804\udef4".charAt(1);

如何将 cd 打印为十六进制字符串?

我想要 d804 用于 cdef4 用于 d

字符是否为代理对并不重要。如果你有一个 char,你可以通过 Integer.toHexString() 将它转换为十六进制字符串,因为 chars 可以隐式转换为 int.

System.out.println(Integer.toHexString(c));
System.out.println(Integer.toHexString(d));