2013-08-23 2 views
0

명령 줄 도구를 쓰고 문자열 []의 매개 변수가 이미 UTF-8로 인코딩되어 있습니다.
샘플 : myTool.jar는 "Gesch \ u00E4ft"명령 줄 도구에서 Java 문자열 디코드

이 문자열은 이제 "Gesch \ u00E4ft"로 표현하고, 내가 다시 디코딩하는 방법을 모르는를 -x -jar 자바. URID 코드/URLDecode/CharsetDecoder가 작동하지 않았습니다.

String test = args[2]; 
URI uri = null; 
try { 
    uri = URI.create(test); 

} catch (Exception e) { 
    e.printStackTrace(); 
} 

오류 : 에 의해 발생 : 인덱스 5에서 경로에 잘못된 문자 : java.net.URISyntaxException Gesch \ u00E4ft

+0

'\ u00E4'은 (는) UTF-8이 아니며'ä '의 Java 문자열 리터럴입니다. 'c3 a4'는'ä'의 utf-8 인코딩의 16 진수 표현입니다. –

답변

0

당신 \uxxxx는 자바 형식의, URL 형식이 아닙니다. 이러한 시퀀스를 디코딩하는 Properties.load를 사용할 수 있습니다.

String s1 = "Gesch\\u00E4ft"; 
    Properties props= new Properties(); 
    props.load(new StringReader(s1)); 
    String s2 = (String)props.keySet().iterator().next(); 
+0

많은 고맙습니다! 이 작품 :) – Roland

관련 문제