2017-04-15 2 views
0

Windows 용 편집기 (또는 Word)로 작성된 표준 텍스트 파일을 Android 장치에 ANSI 형식으로 저장했습니다. 이 파일을 열어서 Android 기기에 표시하면 독일어 Umlaute äÄöÖüüß를 제외한 모든 문자가 올바르게 표시됩니다. 이 문자 대신 검정색 다이아몬드 안에 흰색 물음표가 표시됩니다. (나는 그들을 remoteViews.setTextViewText(...을 사용하는 홈 화면 위젯에 표시한다)독일어 (유럽) 문자로 ansi-coded 파일을 읽고 올바르게 표시하는 방법

나는 몇 시간 동안 인터넷 검색을했고, UTF-8 인코딩 등을 사용할 때 많은 힌트를 발견했다. 그러나 파일을 UTF-8이나 ANSI가 아닌 다른 형식으로 저장할 때 나는 예외가 발생하고 파일을 전혀 읽을 수 없습니다. 안드로이드 편집기를 사용하면 파일 인코딩이 ANSI와 UTF-8 모두에서 올바른 것으로 나타납니다.

내 프로그램이 너무 커서 여기에 복사 할 수 없으므로 관련 부분을 추출하여 아래에 넣으십시오. 도와주세요!

public class Test { 

    static void readFile() { 
     File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "birthday.txt"); 
     if (file.exists()) 
     { 
      try { 
       FileReader fileReader = new FileReader(file); 
       BufferedReader br = new BufferedReader(fileReader); 
       //BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(directory+"birthday.txt"), "windows-1252")); 

       String lineOfText; 
       while ((lineOfText = br.readLine()) != null) { 
        //Output lineOfText via remoteViews.setTextViewText(WidgetOutput.getRef(linecounter).getIdWhat(), lineOfText); 

       } 
       br.close(); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

} 
+0

UTF-8 파일을 읽을 때 어떤 예외가 있습니까? –

+0

독자와 함께 인코딩 매개 변수를 추가 할 수 있습니다. 시험해보십시오. – greenapps

답변

0

주석이 달린 BufferedReader 행이 제대로 작동하는 것처럼 보입니다. 그러나 은 클래스의 정식 이름이며 java.nio입니다. java.io (예 : InputStreamReader)의 수업의 경우 정식 이름은 Cp1252입니다. Supported Encodings

ISO-8859-1 (nio) 또는 ISO8859_1 (io)을 사용해 볼 수도 있습니다.