我正在尝试导入一个文本文件,只需使用android即可在textview中显示。
该文件名为“legal”,位于res / raw
我使用以下代码读取文件...
BufferedReader bufferreader = new BufferedReader(new
InputStreamReader(getResources().openRawResource(R.raw.legal), Charset.forName("UTF8")));
String bufferLine;
String tempText = "";
try
{
while ((bufferLine = bufferreader.readLine()) != null)
{
tempText = tempText + bufferLine + "\n";
}
}
catch (IOException e)
{
e.printStackTrace();
}
当我尝试在TextView中显示tempText时,方向性“智能”引号显示为未知字符。文本文件legal是用UTF8编码的(使用notepad ++)。我似乎无法弄清问题是什么。
答案 0 :(得分:1)
您确定“UTF8”是有效的字符集名称吗? the documentation for Charset似乎建议使用UTF-8
我通常只是做
InputStreamReader(inputStream, "UTF-8")
并没有任何问题。我有utf编码的html风格的问题。与&#UNICODENUMBER;
这解决了这些问题
txtView.setText(Html.fromHtml(str).toString());
修改强>
由于上述内容对您没有帮助,我会尝试以下方法:
txtView.setText(Html.fromHtml("“" + " Hello World " + "”").toString());
只是看看使用的字体是否支持字符(我猜你是在卷曲引号之后)。如果它确实呈现,则必须存在读取文件的方式(即使 - 看起来足够有效)或实际文件的问题。
希望有所帮助:)