2014-07-07 43 views
0

我試圖從.txt文件加載。像大多數.txt文件一樣,它是UTF-8編碼的,所以當我在eclipse中加載它時,它顯示雙引號標記字符。掃描儀和緩衝讀取器不顯示雙引號Java Android

問題是,當我將我的文本文件加載到bufferedreader(也設置爲UTF-8編碼)時,它會將雙引號和其他幾個字符轉換爲設備上的問號框。

我找不出什麼可能是問題,在這裏和谷歌搜索都在談論阿拉伯字符。請幫忙。

編輯:...更新問題...1分鐘

EDIT2:我展示他們一個TextView裏面。 以下是一種方法。掃描儀不能正常工作或者所以我用這個:

InputStream in; 
in = getResources().openRawResource(R.id.text); 
BufferedReader br = new BufferedReader(new InputStreamReader(in,Charset.forName("UTF-8"))); 
ArrayList<String> letters = new ArrayList<String>(25); 
     try { 
      String line=""; 
      while((line = br.readLine()) != null){ 
       String[] splited = line.split("\\s+"); 
       int m = 0; 
       String word=""; 
         while(m<splited.length){ 
         m++; // analyze the word and do some other stuff here 
         letters.add(word); 
         } 

      } 
      in.close(); 
      br.close(); 
     } catch (IOException e) { 

      e.printStackTrace(); 
     } 

這裏就是我展示我的文字處理程序中:

    final Textview txt = (TextView) rootView.findViewById(R.id.something); 
       // handler stuff, then inside the handler: 
       txt.setText(word, BufferType.SPANNABLE); 
        Spannable s = (Spannable)txt.getText(); 
        s.setSpan(new ForegroundColorSpan(0xFFFFFFFF),2,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

我刪除了spannable,沒有骰子。

+0

請出示碼你正在使用的是你使用的雙引號(我懷疑它們不是ASCII碼),以及文件中*字節*的含義。 –

+0

「BufferedReader」完全可以讀取字符,並且由於您顯示它們的方式而只能顯示爲「缺失的字形」字符。 「像大多數.txt文件一樣,它是UTF-8編碼的」 - 啊,如果只有*那*是真的。 –

+0

(注意:雙引號字符包括U + 0022,U + 201C,U + 201D以及更不可能的U + 201E,U + 201F和U + 2E42) –

回答

0

要見你默認是什麼記事本保存您的txt文件的,只是去到文件>>另存爲,然後沿着底部或在某種選項菜單中應該有一些關於字符編碼