2014-05-21 10 views
0

이 문자열이 있습니다 "\U05d0\U05d5\U05d2\U05e0\U05d3\U05d4","\U05d0\U05d5\U05d6\U05d1\U05e7\U05d9\U05e1\U05d8\U05df","\U05d0\U05d5\U05e1\U05d8\U05e8\U05d9\U05d4"유니 코드 문자열을 읽을 수있는 문자열로 변환하는 방법

어떻게 읽을 수있는 문자열로 변환합니까? 난이 방법을 시도

(이것은 히브리어 있어야하는데 참고)하지만

byte[] bytes = s.getBytes(); 
String decoded = new String(bytes); 
System.out.println(decoded); 
+0

. 힌트는 http://stackoverflow.com/questions/3537706/howto-unescape-a-java-string-literal-in-java를 참조하십시오. – nos

+0

**'String.getBytes()'또는'String (byte [])'을 절대로 사용하지 마라. ** 이들은 기계에 의존적인데 디폴트 시스템 인코딩을 사용하고 데이터가 손상되는 경우가있다. –

+0

@KarolS thanks :) 그러나 1 시간 변환이 필요했기 때문에 이것은 괜찮습니다. 그러나이 문제에 대한 보편적 접근 방법이 있는지 알고 싶습니다. –

답변

0

모든 U 소문자 u해야 작동 didnt가 :

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) {  
     // ... 
    } 

Byte Encodings and Strings를 참조하십시오.

출력 :하지 않는 것이 똑바로 앞으로

אוגנדה 
+0

!!!!! 좋은, 고맙습니다. –

+0

당신은 환영합니다 :) – displayname

+1

이것은 현재 문자 세트가 멱등환이 아닌 시스템에서 끔찍하게 깨질 것입니다. 시스템 문자 ser가 히브리어를 지원하면 간단한 System.out.println이 작동해야합니다. –

관련 문제