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,沒有骰子。
請出示碼你正在使用的是你使用的雙引號(我懷疑它們不是ASCII碼),以及文件中*字節*的含義。 –
「BufferedReader」完全可以讀取字符,並且由於您顯示它們的方式而只能顯示爲「缺失的字形」字符。 「像大多數.txt文件一樣,它是UTF-8編碼的」 - 啊,如果只有*那*是真的。 –
(注意:雙引號字符包括U + 0022,U + 201C,U + 201D以及更不可能的U + 201E,U + 201F和U + 2E42) –