2015-10-12 9 views
0

Я пытаюсь прочитать из базы данных и показать результат в TextView в Android, он работает до тех пор, пока в предложении не будет шведской буквы, иначе TextView показывает null. В базе данных все в порядке, даже шведские буквы отлично работают там, но проблема в Android.Шведские символы не работают в Android Studio при чтении из базы данных

Я использую UTF-8 в Android и utf8-general-ci для столбца базы данных.

Edit: Эта функция PHP решить мою проблему

/* Change data-type from string to integar or float if required. 
* If string detected then utf8_encode() it. */ 
function cast_data_types ($value) { 
    if (is_array($value)) { 
    $value = array_map('cast_data_types',$value); 
    return $value; 
    } 
    if (is_numeric($value)) { 
    if(strpos('.', $value)===false) return (float)$value; 
    return (int) $value; 
    } 
    return utf8_encode((string)$value); 
} 

json_encode (cast_data_types ($ данных));

+0

Вы говорите о базе данных sqlite или mysql/mssql? –

+0

Это MySql, который я использую. – Salk

+0

http://stackoverflow.com/a/30432956/1939564 использовать указанный метод в вашем файле php-скрипта –

ответ

-1

Мне кажется, вам нужно прочитать значение из базы данных как byte[], затем закодировать его до String, используя new String(bytes,"ISO-8859-1") перед его показом.

+0

Я получаю информацию с помощью JSON, например: JSONObject json_data = new JSONObject (result); pname = (json_data.getString ("name")); – Salk

+0

Итак, каково значение pname, которое вы получаете? – sanjay

+0

Как я уже говорил, я правильно понял, но когда имя содержит шведские буквы, такие как å ä ö, я получаю null в TextView, который показывает имя. – Salk