2016-09-14 3 views
-1

내가 이클립스 네온 4.6.0 사용하여 자바 프로그램으로 히브리어와 영어 문자를 포함 .dat text file 가져 오기 위해 노력하고있어 : 어떤 이유Eclipse Java는 파일에서 히브리어 대신 이상한 비 히브리어 문자를 가져옵니다. 인코딩 문제는 무엇입니까?

String[] getFile(String path) throws IOException 
{ 
    BufferedReader in = new BufferedReader(new InputStreamReader(this.getClass().getResource("../../../t3utf.dat").openStream())); 
    String l; 
    String[] dataFile = new String[23213]; //Does java have push and pop or auto expanding lists? 
    int c = 0; 
    while ((l = in.readLine()) != null) { 
     dataFile[c] = l; 
     c++; 
    } 
    return dataFile; 
} 

을, 히브리어 문자는 임의의 횡설수설로 대체되고있다 :

는 원본 :

새로운 기능 : : 프로그램이 한 번 실행 gen|1|1|בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃

되면, 모든 히브리어 문자가 횡설수설로 대체됩니다 gen|1|1|בְּרֵ×ש×ִ֖ית ×‘Ö¼Ö¸×¨Ö¸Ö£× ×Ö±×œÖ¹×”Ö´Ö‘×™× ×ֵ֥תהַש×Ö¼Ö¸×žÖ·Ö–×™Ö´× ×•Ö°×ֵ֥ת ×”Ö¸×ָֽרֶץ׃

실제로 파일 자체가 횡설수설로 바뀝니다. 프로그램을 실행 한 후 메모장에서 볼 때 문자가 어떻게 든 변경되었습니다.

저는 AIDE의 Android에서 실행되는 프로그램 버전을 가지고 있으며이 문제는 없었습니다. Eclipse가 불필요하게 특정 쓸데없는 인코딩을 강제합니까?

+0

터미널의 출력 인코딩을 확인하십시오. – chrylis

+0

파일을 어떻게 읽나요? 문자 집합을 지정 했습니까? 기존의'File' 기반 리더/라이터는 JVM 디폴트 캐릭터 세트를 디폴트로하고, 새로운'Path'베이스의 리더/라이터는 디폴트는 UTF-8입니다. * input * 파일 자체의 실제 인코딩은 무엇입니까? * 출력 * 파일에서 원하는 인코딩은 무엇입니까? – Andreas

+1

명시 적 문자 집합을 취하는 InputStreamReader 생성자를 사용하고 문제의 파일에 적절한 문자 집합을 사용합니다. –

답변

0

this answer에 따르면 프로젝트 인코딩을 UTF-8로 설정해야합니다. Window Menu -> Preferences -> General -> Workspace

2 : UTF-8 encoding setting in the bottom left corner

  1. 이동 : 가장 좋은 방법은 당신이 히브리어 문자를 포함하는 다른 프로젝트를 진행 할 수 있을지하는 작업 공간의 인코딩을 변경하는 것입니다해야 할 일

    UTF-8 인코딩에 히브리어 문자가 포함되어 있기 때문에 프로그램에서 히브리어 문자를로드 할 수 있습니다.