2012-08-28 3 views
0

내 프로그램에서 입력 문자열을 문자열로 변환합니다. 그러나 bytestream에 ë가있는 단어가 포함되어 있으면이 문자는 %로 변환됩니다. 이 문제를 어떻게 해결할 수 있습니까?trema가 백분율 기호로 표시되는 문자

들으 이러한 문자 인코딩

+0

어떻게 바이트 스트림을 변환합니까 ... 어떤 문자 인코딩을 사용하는지 대 어떤 문자 인코딩을 사용하여 바이트를 문자로 읽는 중입니까? – Charlie

+0

필자는 bytearray를 새로운 String (byte [])에 전달합니다. 명시 적으로 문자 인코딩을 지정하지는 않습니다. –

+2

새로운 String (byte [])은 바이트를 디코딩 할 때 플랫폼의 기본 문자 세트를 사용합니다. 어떤 문자 집합이 바이트 스트림을 인코딩하는 데 사용 되었습니까? – Mark

답변

0

,

UTF-8하는 캐릭터 오브젝트 변환] getBytes 메소드를 호출 파라미터로서 적절한 인코딩 식별자를 지정. getBytes 메소드는 UTF-8 형식의 바이트 배열을 리턴합니다. 비 유니 코드 바이트의 배열에서 String 객체를 만들려면 encoding 매개 변수로 String 생성자를 호출합니다. 이것을 참조하십시오.

try { 
    byte[] utf8Bytes = original.getBytes("UTF8"); 
    byte[] defaultBytes = original.getBytes(); 

    String roundTrip = new String(utf8Bytes, "UTF8"); 
    System.out.println("roundTrip = " + roundTrip); 
    System.out.println(); 
    printBytes(utf8Bytes, "utf8Bytes"); 
    System.out.println(); 
    printBytes(defaultBytes, "defaultBytes"); 
} 
catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
} 
관련 문제