【发布时间】:2020-08-20 08:01:00
【问题描述】:
我想把这个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,但不适用于默认字符集为 ISO-8859-1 的一个 linux VM。
【问题讨论】:
-
当你说
new String(bytes)时,你也应该把字符集放进去 -
将
String转换为byte[]只是将其转换回String是没有意义的。使用原始的String开头。
标签: java unicode character-encoding