2012-03-12 3 views
2

Eclipse (Indigo Service Release 1)에서 인코딩 문제가 있습니다. 다음과 같은 현상이 발생합니다.Eclipse에서 인식 할 수없는 특수 문자

독일어로 된 속성 파일 (언어 묶음)이 있는데이 파일을 열면 Eclipse에 올바르게 표시되지 않습니다. 예 : gelöschtgel�scht으로 표시됩니다. 파일 연결을 Text Editor, Properties File Editor, JBoss Tools Properties Editor으로 변경하려고 시도했지만 모든 경우에 이와 같이 표시됩니다.

재미있는 부분은 Notepad++에서 파일을 열면 올바르게 표시된다는 것입니다. Eclipse에서 텍스트 파일 인코딩은 UTF-8으로 설정되고 파일 인코딩은 (Notepad++에 따라) ANSI입니다.

내가 알고있는 또 다른 설정이 있습니까? Eclipse에서 올바른 인코딩을 보려면이 문제를 어떻게 해결할 수 있습니까?

+0

Java **의 '.properties' 파일은 ISO-8859-1 및 ** UTF-8로 인코딩되어 있어야합니다. 이는 Java에서보다 이상하고 일관성없는 결정 중 하나입니다. –

+0

@ JoachimSauer : 글쎄, 그것은 무엇을 읽을 것인지에 달려 있습니다. Spring은 다른 인코딩을 오랫동안 지원했으며 이제'Reader.'를'Properties.load'에 전달할 수 있습니다. –

+0

@JonSkeet : 물론, 실제로는 ** 해당 기능을 사용하지 않는 인프라가 많이 있습니다.그리고 * save * 베팅은 기본 인코딩을 사용하는 것입니다 (그리고/또는 모든 비 ASCII 문자에 유니 코드 이스케이프 사용). –

답변

5

안녕하세요 당신은 을 읽고 속성 파일은 무엇입니까? ISO-8859-1 (다양한 인프라 스트럭처에서 기대할 수있는 기본 인코딩)이나 UTF-8 이외의 다른 비 ASCII 인코딩으로 저장하는 것은 나에게 좋지 않은 생각입니다. 은 ASCII, ISO-8859-1 또는 UTF-8을 사용하는 것이 좋습니다.

요즘 PropertiesReader으로로드 할 수 있지만 UTF-8은 일반적으로 비 ASCII 문자를 처리하고 모든 컴퓨터에서 작동해야하는 파일에 가장 적합한 인코딩입니다. 당신은 아마 힘 이클립스, 파일을 마우스 오른쪽 버튼으로 클릭하여, 차이 인코딩을 사용하여 등록 정보를 선택한 후 자원 페이지의 하단에 "텍스트 파일 인코딩"을 선택으로 생각하는 수

-하지만 나는 당신이 이 아니라고 제안 할 것이다. native2ascii에 의해 생성 된

대안은 적절한 \u.... 이스케이프 시퀀스 사용 ASCII이다.

(당신이 비 ASCII ISO-8859-1 문자를 포함하는 동안, 나는 개인적으로 않을 것 - 문자가 ASCII하지 않을 때 그것은 분명하지만, ISO-8859-1과 다른 인코딩 사이의 구분은 난이도가 도착 육안으로 볼 수 있습니다.)

+0

응용 프로그램에서 값이 올바르게 표시됩니다. Eclipse에서 파일을 볼 때만 문제가 있습니다. 또한 모든 특수 문자가 잘못 표시 될 수 있기 때문에 해당 속성 파일의 값을 변경하면 문제가 발생합니다. 나는 터빈을 응용 프로그램 프레임 워크로 사용하고 있으며 ResourceBundle Java 클래스를 사용하여 적절한 파일 값을 읽는 것으로 알고 있습니다. 내 속성 파일은 ANSI (Notepad ++에 따라)로 인코딩되어 있지만 Eclipse에서 UTF-8을 지정 했으므로 변경 이유를 알 수 없습니다. – Atticus

+0

@Atticus : 응용 프로그램에서 파일을 * 읽는 * 방법은 무엇입니까? 또한 메모장을 믿어서는 안됩니다. ++ - 어느 정도는 추측 할 것입니다. 텍스트 파일은 단지 한 묶음으로, 특정 인코딩에서 해석되는 * 것을 이해해야합니다. –

+0

응용 프로그램에서 해당 파일은 java.util.ResourceBundle.getString (String) 메소드에 의해 읽혀집니다. – Atticus

0

텍스트 파일 donot은 인코딩 정보를 포함하므로 볼 때 가장 잘 추측 할 수 있습니다. 메모장 + + 그냥 파일이 ANSI 것 같아요.

해당 파일이 UTF8이 아니거나 마지막으로 다른 사람이 편집 할 때 atleast가 저장되지 않았습니다. 파일을 UTF8로 다시 저장하거나 Eclipse의 인코딩을 CP1252와 같은 것으로 변경해야합니다.

올바른 형식을 자동으로 인식하는 것은 실제로 불가능합니다.