Как отобразить испанский текст в TextView?

#android

#Android

Вопрос:

У меня есть следующий код, и я пытаюсь отобразить текст в текстовом представлении на испанском языке. Когда я запускаю приложение, оно отображается? в некоторых местах. Кто-нибудь может рассказать мне подробную процедуру отображения испанского языка.

 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:

Ваш метод readTxt неверен. Вы возвращаете строковое представление вашей ByteArrayOutputStream , а не фактической строки.

Попробуйте прочитать входной поток в a 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();   
    }
  

Комментарии:

1. Я не могу получить его правильно. Можете ли вы привести мне какой-нибудь пример или ссылку, чтобы я ссылался на это…

2. Я отредактировал свой ответ. Обратите внимание, что я НЕ ТЕСТИРОВАЛ код и просто написал его здесь, но это должно послужить объяснением моего ответа.

3. Спасибо за ваш ответ, я пробую вашу логику, но все равно он не отображает правильный текст. Пожалуйста, дайте мне знать или дайте мне какую-нибудь ссылку или сообщите другой метод.