2011-01-25 2 views
2

메일을 보내는 독립 실행 형 응용 프로그램을 호출하기 위해 JUnit 테스트 케이스를 실행할 때 문자가 메일로 제대로 표시되지만이 응용 프로그램이 표시된 스레드를 통해 다른 컴퓨터에서 실행될 때? 진짜 문자 대신에. 이 광산 송신 프로그램은 유닉스의 sendMail을 사용하고 원격 기계는 POSTFIX를 사용합니다. 누군가가 문제의 가능한 원인을 생각할 수 있습니까?UTF-8 문자가 표시되지 않음

+0

응용 프로그램에서 기본 MIME 문자 집합을 지정해야 할 수도 있습니다! –

답변

1

몇 가지 코드를 보여주십시오. 그러나 대부분의 경우, 사용하려는 문자 인코딩을 명시 적으로 지정하지 않고 한 플랫폼의 기본값이 예상대로 작동하며 다른 기본값의 기본값은 사용하지 않습니다.

1

아마도 출력 스트림의 인코딩을 UTF-8로 명시 적으로 설정하는 것을 잊었을 것입니다. 자바의 일반적인 기본 인코딩은 부적합 코드를 ? 문자로 대체하는 플랫폼 로컬 8 비트 코드입니다.

프로그램 자체에서이 작업을 수행해야합니다. 그러나 javac 명령 줄에 ‑Dfile.encoding=UTF‑8을 전달할 수도 있습니다. 그냥 따라 달라.

+0

이것은 "읽기 전용"속성으로 설명되어 있습니다. 즉, JVM은 플랫폼 기본값을 판별하고이 특성을 통해 사용 가능하게합니다. 즉, 나는 이것이 Sun JVM에서 작동한다고 믿는다. – dty

+0

@dty : 사과에서도 작동합니다. – tchrist

+0

그럼에도 불구하고, 이것은 읽기 전용으로 문서화되어 있으므로이 접근법이 앞으로는 작동하지 않는다면 놀라지 마십시오. – dty

관련 문제