如何在TextView中显示西班牙语文本?

3

我有下面的代码,想要在text-view中显示西班牙语。当我运行应用程序时,有些地方会显示问号。有人可以告诉我显示西班牙语的详细过程吗?

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.information);
   textview=(TextView) findViewById(R.id.information);
       textview.setText(readTxt());
}

private String readTxt(){
    InputStream inputStream = getResources().openRawResource(R.raw.info);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    int i;
    try {
    i = inputStream.read();
        while (i != -1)
        {
            byteArrayOutputStream.write(i);
            i = inputStream.read();
        }
        inputStream.close();
    } catch (IOException e) {
            e.printStackTrace();
    }
        return byteArrayOutputStream.toString();
} 
1个回答

1

你的readTxt方法有误。

你返回的是ByteArrayOutputStream的字符串表示形式,而不是实际的字符串。

尝试将输入流读入ByteArrayInputStream,然后从中获取字节数组,并在此基础上返回新的String(byteArray)

    private String readTxt(){               
InputStream inputStream = getResources().openRawResource(R.raw.info);
        InputStreamReader isReader = new InputStreamReader(inputStream);

        BufferedReader reader = new BufferedReader(isReader);

        StringBuffer buffer = new StringBuffer();
        String line = null;
        while ((line = reader.readLine()) != null)
        {
            buffer.append(line);
            buffer.append("\n");
        }
        buffer.deleteCharAt(buffer.length() - 1); // Delete the last new line char
        // TODO: Don't forget to close all streams and readers
        return buffer.toString();   
    }

我无法正确理解。你能给我一些例子或链接,这样我就可以参考一下吗? - The iCoder
我已经编辑了我的答案。请注意,我没有测试过这段代码,只是在这里写出来作为我的答案的解释。 - IncrediApp
谢谢您的回复,我尝试了您的逻辑,但仍然没有显示正确的文本。请告诉我或给我一些链接或告诉我另一种方法。 - The iCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接