2013-08-28 2 views
2

У меня проблема, что где-то, когда я сохраняю свое текстовое поле, акценты исчезают и не сохраняются в bd.Android: проблемы с акцентами и -


Пример:

вход: "ла MEVA ocupació és х" Что шд спасает: "ла MEVA ocupaci"


Я думаю, что может произойти сбой в некоторых из этих частей :

, когда я забрать данные из текстового поля:

title = (EditText)findViewById(R.id.title); 

, когда я преобразовать его в строку:

String post_title = title.getText().toString(); 

, когда я положил его в списке:

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("title", post_title)); 

Полный код: http://pastebin.com/trrPEG33

Когда я делать вставки на bd принимает акценты без проблем

Когда я получаю данные из bd, эти данные содержат акценты, и они показаны отлично

Я думаю, проблема может быть в сохранении.

Я буду очень благодарен за любую помощь. Извините за мой английский.

+0

Вау! У меня никогда не было проблем с акцентами, даже если они хранятся в базах данных. Я рекомендую вам отлаживать шаг за шагом, чтобы найти, какая строка разрушает акценты, и искать решение, связанное с кодировкой (UTF8) –

+0

извините, я вроде как новый в android, как я могу это сделать? – tknbr

+0

Поместите точку останова в первую строку, где вы получите строку, и пошаговый шаг (Run-> Step Over), ища значения. Вы должны запустить приложение в режиме отладки (Run-> Debug или F11). –

ответ

3

Проблема заключается в том, что проблема связана с вызовом службы REST в вашем классе JSonParser, который не учитывает кодировки, используемые на Android, и на службе разные.

По умолчанию Android использует кодировку UTF-8, и я подозреваю, что ваша служба использует ISO-8859-1 (как видно из части обработки ответа кода).

Чтобы исправить это, вы должны сообщить URlEncodedFormEntity о кодировке использовать р для кодирования:

для запроса POST:

httpPost.setEntity(new UrlEncodedFormEntity(params, "iso-8859-1")); //line 108 

для запроса GET:

String paramString = URLEncodedUtils.format(params, "iso-8859-1"); //line 117 

Этого должно быть достаточно.

+0

Спасибо вам большое, что помогло мне, и я, наконец, закончил свое приложение. В моем случае мне пришлось изменить iso_8859-1 для utf-8, и все отлично работало. Sry, я не могу проголосовать, у меня нет достаточной репутации: S – tknbr

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