2015-11-20 3 views
0

Мне нужно прочитать арабский docx, помещенный в мою sdcard из моего приложения Android, и отобразить текст в textView, я использую следующий код, но текст выглядит как странные символы , Что такое кодирование использовать, кроме UTF-8:android display arabic doc, docx file from sdcard in textView

 File logFile = new File(path + name); 
    if (logFile.exists()) 
    { 
     try 
     { FileInputStream fIn = new FileInputStream(logFile); 
      BufferedReader myReader = new BufferedReader(
        new InputStreamReader(fIn,"UTF-8")); 
      String aDataRow = ""; 
      String aBuffer = ""; 
      while ((aDataRow = myReader.readLine()) != null) { 
       aBuffer += aDataRow + "\n";} 
      tv.setText(aBuffer); //tv is the textView 
      myReader.close(); 
      logFile.createNewFile(); 
     } 
     catch (IOException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

DOCX файлы заархивированы в формате XML. Даже если вы расстегнете его, это будет не то, что вы ожидаете. –

+0

.doc файл тоже имеет такую ​​же проблему – Amalo

+0

doc-файлы представляют собой собственный двоичный формат. Для этого вам обязательно нужна сторонняя библиотека. –

ответ

2

вы можете преобразовать его в HTML-файл и поместить его активов и показать его с WebView.

в вашем XML:

<WebView 
    android:layout_width="match_parrent" 
    android:layout_height="match_parrent" 
    android:id="@+id/WV1" 
/> 

в классе деятельности:

public class MainActivity extends AppCompatActivity { 

    public WebView wv; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     wv = (WebView) findViewById(R.id.WV1); 
     wv.loadUrl("file:///android_asset/myWV.html"); 
    } 
}