在 java 中将 unicode 转换为它的实际中文符号
Convert a unicode into it's actual chinese symbol in java
我想把这个U+2E93转换成java中对应的中文符号。我尝试使用这种方法。
String encoding = "UTF-8";
String cp = "U+2E93".subString(2);
int cpVal=Integer.parseInt(cp,16);
String tempString = Character.toString((char)cpVal);
byte[] bytes = tempString.getBytes(Charset.forName(encoding));
result = new String(bytes);
这在我的本地工作正常,默认字符集是 UTF-8,但在一个 linux VM 上不起作用,默认字符集是 ISO-8859-1。
使用 Unicode 转义序列。
System.out.println("\u2E93");
如果您收到字符串形式的代码点,如问题中所示,请这样做:
Java 11+
String cp = "U+2E93";
int codePoint = Integer.parseInt(cp.substring(2), 16);
String result = Character.toString(codePoint);
System.out.println(result);
Java 5+
String cp = "U+2E93";
int codePoint = Integer.parseInt(cp.substring(2), 16);
String result = new String(new int[] { codePoint }, 0, 1);
System.out.println(result);
输出(以上所有 3 个)
⺓
对于来自补充平面的字符,当使用字符串文字时,您需要提供 UTF-16 代理项对
System.out.println("\uD83D\uDC4D");
String cp = "U+1F44D";
...
输出(来自两者)
我想把这个U+2E93转换成java中对应的中文符号。我尝试使用这种方法。
String encoding = "UTF-8";
String cp = "U+2E93".subString(2);
int cpVal=Integer.parseInt(cp,16);
String tempString = Character.toString((char)cpVal);
byte[] bytes = tempString.getBytes(Charset.forName(encoding));
result = new String(bytes);
这在我的本地工作正常,默认字符集是 UTF-8,但在一个 linux VM 上不起作用,默认字符集是 ISO-8859-1。
使用 Unicode 转义序列。
System.out.println("\u2E93");
如果您收到字符串形式的代码点,如问题中所示,请这样做:
Java 11+
String cp = "U+2E93";
int codePoint = Integer.parseInt(cp.substring(2), 16);
String result = Character.toString(codePoint);
System.out.println(result);
Java 5+
String cp = "U+2E93";
int codePoint = Integer.parseInt(cp.substring(2), 16);
String result = new String(new int[] { codePoint }, 0, 1);
System.out.println(result);
输出(以上所有 3 个)
⺓
对于来自补充平面的字符,当使用字符串文字时,您需要提供 UTF-16 代理项对
System.out.println("\uD83D\uDC4D");
String cp = "U+1F44D";
...
输出(来自两者)