Java 如何将unicode字符串转换为可读字符串
我有这个字符串Java 如何将unicode字符串转换为可读字符串,java,unicode-string,Java,Unicode String,我有这个字符串“\U05d0\U05d5\U05d2\U05e0\U05d3\U05d4”、“\U05d0\U05d5\U05d6\U05d1\U05e7\U05d9\U05e1\U05d8\U05df”、“\U05d0\U05d5\U05e1\U05d8\U05e8\U05e8\U05d9\U05d4” 如何将其转换为可读字符串?(注意这应该是希伯来语) 我试过这个方法,但不管用 byte[] bytes = s.getBytes(); String decoded = new String(
“\U05d0\U05d5\U05d2\U05e0\U05d3\U05d4”、“\U05d0\U05d5\U05d6\U05d1\U05e7\U05d9\U05e1\U05d8\U05df”、“\U05d0\U05d5\U05e1\U05d8\U05e8\U05e8\U05d9\U05d4”
如何将其转换为可读字符串?(注意这应该是希伯来语)
我试过这个方法,但不管用
byte[] bytes = s.getBytes();
String decoded = new String(bytes);
System.out.println(decoded);
所有
U
都应为小写U
:
String s = "\u05d0\u05d5\u05d2\u05e0\u05d3\u05d4";
try{
byte[] bytes = s.getBytes();
String decoded = new String(bytes);
System.out.println(decoded);
} catch(UnsupportedEncodingException e) {
// ...
}
看
输出:
אוגנדה
不是那么直截了当的。有关提示,请参阅。切勿使用
String.getBytes()
或String(byte[])
。它们依赖于机器,使用默认的系统编码,经常导致数据损坏。@KarolS谢谢:)不过,因为我需要1次转换,所以这没问题。然而,我想知道是否有一种更通用的方法来解决这个问题,那么?在当前角色集不是幂等的系统上,这将严重破坏。如果系统字符ser支持希伯来语,那么一个简单的System.out.println(s)应该可以工作。你是对的。基本上,您可以获得字符编码并调用getBytes(getChararcterEncoding())
,这样就不会再有问题了。我编辑了我的答案。很抱歉,如果没有getBytes部分,它将无法工作