2016-07-11 3 views
0

Мое приложение принимает некоторые файлы csv в качестве входных данных и отображает содержимое этих файлов. Некоторые строки содержат немецкие буквы (ä, ß, ü, ...), мое приложение не отображает эти письма правильно.Приложение не отображает немецкий текст правильно

Я изменил кодировку, указанную в манифесте, на <?xml version="1.0" encoding="ISO-8859-3"?> (даже если я считаю, что объявление кодирования специфично для самого манифеста, а не для приложения), я выбрал немецкий как язык в настройках AVD, я также включены следующие опции в gradle.build:

compileOptions{ 
    encoding "ISO-8859-3" 
} 

ни один из моих попыток не работал, и мое приложение по-прежнему писать текст uncorrectly.

Как сделать, чтобы файл CSV правильно отображался в Gui моего приложения?

Примечание: файлы правильно написаны в AndroidStudio

UPDATE

я нашел, где проблема пришли и решение. Похоже, что проблема возникает из файла csv. Я открыл файл csv с помощью текстового редактора и сохранил его с явным UTF-8, теперь его содержимое правильно написано в gui моего приложения.

примечание

поворот, чтобы указать кодировку при чтении файла с InputStreamReader(my_csv, "ISO-8859-3"), но я предполагаю, что это может представить проблему в случае, что в будущем файлов CSV хорошо отформатированные

+0

ли шрифт вы используете поддержку немецкой? –

+0

Как выглядит ваш метод с 'InputStream'? –

ответ

0

Я узнал, где проблема и решение. Поэтому проблема возникает из создания файла csv. Действительно, я открыл свой CSV-файл с помощью текстового редактора и сохранил его с явным UTF-8, теперь его содержимое правильно написано в gui моего приложения.

примечание

поворот, чтобы указать кодировку при чтении файла с InputStreamReader(my_csv, "ISO-8859-3"), но я предполагаю, что это может представить проблему в случае, что в будущем файлов CSV хорошо отформатированный

Я искал на фальшивом направлении, проблема в том, как я читаю файлы. Я должен был указать кодировку, когда я читаю CSV-файлы:

stream = new InputStreamReader(the_file, "ISO-8859-3"); 

Update: Кажется, на самом деле, что проблема возникает из файла CSV. Я открыл свой CSV-файл с помощью текстового редактора и сохранил его с явным UTF-8, теперь мне не нужно указывать тип кодировки с помощью InputStreamReader, и его содержимое правильно написано.

0

Я считаю, что ваша кодировка неверна.Вот ссылка со всеми encondings: List encoding

вы можете увидеть, кодировка Немец ISO 8859-16 (ISO 8859-3 для таких языков, как турецкий)

Я надеюсь, что это кодирование будет отображать текст правильно :)

не забудьте точное кодирование при чтении CSV:

new InputStreamReader(your-csv_file, "ISO-8859-16"); 
+0

спасибо за ваш ответ, но я думаю, что проблема возникла из файла csv –

+0

@OLeeCsobert «проблемы возникли из файла csv» .... вы решили свою проблему? Если это будет сделано, можете ли вы обновить свой первый пост, чтобы определить, что было не так в вашем файле csv? Это может быть полезно для других людей .... и потому, что мне тоже любопытно :) Редактировать: я просто вижу ваш ответ о редакторе. Удачи вам в разработке приложений;) –

+0

Я обновил свой вопрос и ответ. Мне просто нужно подождать, чтобы отметить мой собственный ответ в качестве решения. Еще раз спасибо за ваш ответ –

Смежные вопросы