2014-08-31 2 views
1

작은 Java 응용 프로그램이 있습니다. 나는 식으로 그것을 개발합니다. 그것은 XML 파일에서 텍스트를 가져 와서 웹 사이트에 업로드합니다. 일식 everithing 잘 작동합니다. 하지만 내 응용 프로그램을 실행 가능한 jar로 컴파일하고 cmd에서 시작하면 커다란 문제가 발생합니다. 모든 비 라틴 문자는 읽을 수없는 기호로 변환됩니다.java - 인코딩 감지 및 변경

나는 <?xml version="1.0" encoding="windows-1251" ?> 또는 <?xml version="1.0" encoding="utf-8" ?>을 입력하려고했지만 도움이되지 않습니다.

이 문제를 어떻게 해결할 수 있습니까?

도움이되었습니다!

+0

정확하게 기억한다면''Cp850 ''(MS-DOS 서양식)을 사용해보십시오. 내가 옳다면 울고 싶다. BTW는 XML이 아니라 어디에서 작성합니다. –

답변

0

출력 작성자의 생성자에서 UTF-8 Charset (또는 다른 모든 supported charset)을 명시 적으로 지정할 수 있습니다. OutputStreamWriter 클래스를 사용하는 경우

Writer writer = new PrintWriter("myfile.txt", "UTF-8"); 
writer.write("Hällo Wörld!"); 
writer.close(); 

등가 예 : 출력 데이터의 PrintWriter 클래스를 사용하여 예를 들어

,

Writer writer = new OutputStreamWriter(System.out, "UTF-8"); 
writer.write("Hällo Wörld!"); 
writer.close(); 

합니다 (Charset가이어야 두 경우 것을 유의 해당 클래스의 직접 인스턴스화가 아닌 텍스트 이름 (즉, "UTF-8")을 통해 지정됩니다.

따라서 문제의 가능한 설명은 charset이 명시 적으로 주어지지 않았기 때문에 시스템이 OS의 기본 인코딩 (아마도 UTF-8이 아님)으로 대체하려고 시도한다는 것입니다.