2012-07-07 13 views
3

메모장으로 작성된 텍스트 파일에서 읽은 프로젝트를 완료했습니다. 내 텍스트 파일의 문자는 아랍어이며 파일 인코딩 유형은 UTF-8입니다. Netbeans (7.0.1) 내에서 프로젝트를 시작할 때 모든 것이 정상인 것 같았습니다. 그러나 프로젝트를 (.jar) 파일로 빌드했을 때 문자가 다음과 같이 표시됩니다 : ÇáãÇÇÚÚáÊØæíÑ. 어떻게 해결할 수 있습니까?텍스트 파일에서 아랍어 문자 읽기

+4

파일에서 해당 문자를 읽는 방법을 보여 주시겠습니까? – Pshemo

답변

3

대부분의 경우 JVM 기본 문자 인코딩을 사용하고있는 것 같습니다. 파일이 UTF-8로 인코딩되었는지 100 % 확신하는 경우 읽기 때 UTF-8을 명시 적으로 지정해야합니다. 이 JVM의 기본 문자 인코딩을 사용

new FileReader("file.txt") 

때문에 - 당신이 제어 할 수 없을 수도있는 및 운영 체제가 다른 무언가를 정의하면서 분명히 넷빈즈 UTF-8을 사용하는 예를 들어이 코드 조각 나뉩니다. 코드를 이식하기를 원하면 FileReader 클래스는 완전히 쓸모가 없습니다.

대신 다음 코드를 사용 :

new InputStreamReader(new FileInputStream("file.txt"), "UTF-8"); 

당신은 당신의 코드를 제공하지 않는, 그러나 이것은 당신이 구현되어야하는 일반적인 인상을 주어야한다.

+1

그게 전부 야. 정말 고마워. –

0

아마도이 예제가 조금 도움이 될 것입니다. 나는 "Cp852"로 인코딩 된 IDE 콘솔과 시스템 콘솔에 utf-8 파일의 내용을 인쇄하려고 시도 할 것이다.

d:\data.txt

ąźżćąś adsfasdf 내가

ąźżćąś adsfasdf 
Ą«ľ†Ą? adsfasdf 

하지만 시스템 콘솔에서 출력이 될 것입니다 될 것 이클립스 출력을 실행하면이 코드

//I will read chars using utf-8 encoding 
BufferedReader in = new BufferedReader(new InputStreamReader(
     new FileInputStream("d:\\data.txt"), "utf-8")); 

//and write to console using Cp852 encoding (works for my windows7 console) 
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, 
     "Cp852"),true); // "Cp852" is coding used in 
        // my console in Win7 

// ok, lets read data from file 
String line; 
while ((line = in.readLine()) != null) { 
    // here I use IDE encoding 
    System.out.println(line); 
    // here I print data using Cp852 encoding 
    out.println(line); 
} 

을 확인할 수 있습니다 포함

enter image description here

+0

도움을 주셔서 감사합니다 –

+0

내 대답은 정말 조금 도움이된다면 기뻐요 :) – Pshemo