2013-09-23 3 views
0

Unix에서 Java 프로그램을 실행하고 있습니다. 문제를 단순화하기 위해 관련 부분 만 설명합니다.Java Unix 문자 인코딩

public static void main(String[] args) { 
    System.out.println("féminin"); 
} 

출력이 가비지입니다. 그것은 분명히 문자 인코딩 문제입니다, 프랑스 문자 é가 올바르게 나타나지 않습니다. 나는 다음을 시도했다 :

public static void main(String[] args) { 
    PrintStream ps = new PrintStream(System.out, true, "ISO-8859-1"); 
    ps.println("féminin"); 
} 

그러나 내 출력은 여전히 ​​표시됩니까? 프랑스 문자의 palce에서.
명령 프롬프트에서 sam efile을 실행하여 java -Dfile.encoding=IBM437 DSIClient féminin
과 같이 작동 시켰습니다. 하지만이 문자 인코딩 문제를 어떻게 해결할 수 있습니까? 감사합니다

+0

http://stackoverflow.com/questions/361975/setting-the-default-java-character-encoding?rq=1 –

답변

1

문제는 대부분 코드 편집기와 터미널 에뮬레이터가 다른 인코딩을 사용하고 Java의 기본 인코딩 개념이 다를 수 있다는 점입니다.

터미널과 편집인이 동의하는지 확인하려면 간단하게 cat Java 소스 파일을 사용할 수 있습니다. é가 올바르게 나타 납니까? 그렇다면 소스 코드 편집기와 터미널에서 동일한 인코딩을 사용하지만 Java의 기본 인코딩은 아닙니다. OTOH가 é을 볼 수 없다면, 터미널과 에디터가 어떤 인코딩을 사용했는지를 알아 내고 동의를 얻어야합니다.

+0

터미널의 코딩을 찾는 방법 – user1912935

+0

@ user1912935 다릅니다. 유닉스는 터미널 에뮬레이션이 너무 많다. 터미널 창에서 마우스 오른쪽 버튼을 클릭하면 메뉴가 표시되고 하위 메뉴 중 하나는 "문자 인코딩"입니다. Suse Linux의 "Konsole"입니다. – Ingo