Проблема со спецсимволами - PullRequest
2 голосов
/ 15 июня 2011

Как я могу изменить шрифт на Android, чтобы позволить отображать специальные символы, такие как "'" или "à"?На самом деле строки, содержащие эти символы, хранятся в базе данных sqlite.

Ответы [ 4 ]

2 голосов
/ 15 июня 2011

Когда вы загрузите текст в ваш TextView, это будет работать для вас?

textView.setText(new String(textFromDatabase, "UTF-8"));

При этом используется конструктор String для установки имени набора символов.Вы можете изменить "UTF-8" на другую кодировку символов - Кроме того, посмотрите на javadoc для String.

String(byte[] bytes, String charsetName)- Создает новую строку путем декодирования указанного массива байтов с использованием указанного набора символов.

1 голос
/ 29 июня 2011

По умолчанию Android SQLite использует UTF-8.У меня была эта проблема, потому что, когда я заполнял базу данных при первом запуске, я использовал текстовый файл с другой кодировкой.

1 голос
/ 15 июня 2011

Вы должны использовать '' вместо ', чтобы сохранить его в базе данных Sqlite. Например, если вы хотите сохранить 5 o'clock в базе данных, вы должны записать это как 5 O''clock. Посмотрите здесь , для получения дополнительной информации об этом.

1 голос
/ 15 июня 2011

Шрифт Droid поддерживает символы "'", "à" и многие другие. Я использую их все время (pt язык).

На самом деле, я уверен, что они поддерживают все дополнения Basic Latin, Latin 1 и первый расширенный латинский диапазон. Они также поддерживают многие другие, такие как иврит и т. Д., Хотя я не уверен, что это изменилось между версиями SDK.

Вы также можете скачать приложение Unicode Map в Маркете, чтобы проверить, какие символы доступны на вашем конкретном устройстве. Я также постоянно сохраняю текст Unicode в sqlite, и все же у меня нет проблем.

Стоит учесть одну вещь: убедитесь, что заданная вами кодировка соответствует кодировке вашего источника. Это может быть текст или URL ... пример:

BufferedReader b = new BufferedReader(new InputStreamReader(url.openStream(), MY_ENCODING));

Вы уверены, что это где-то не проблема?

...