2013-06-22 3 views
0

У меня есть ответ JSON, который я хочу сохранить в БД и отображать в текстовом режиме или редактировать текст. Этот ответ json кодируется форматом UTF-8.Преобразование и отображение кодированной строки UTF8

Response является Somthing как

"currencies": [[0,"RUR"," ",1,0],[1,"EUR","â¬",1.44,100],[2,"GBP","£",1.6,100],[3,"JPY","Â¥",0.0125,100],[4,"AUD","$",1.1,100]]} 

где â¬,  £,  ¥ есть символ валюты. Я должен декодировать это, а затем отображать. Эти символы являются символами в Юникоде (передаются как UTF8). Как я могу преобразовать этот закодированный символ. Помощь Plz.

Я попытался это, но оно не работает:

byte[] b = stringSymbol.getBytes("UTF-8"); // â¬,£,Â¥ 
final String str = new String(b); 

ответ

4

Вы показывающую текст с не-символов валюты ... это как если бы вы нашли оригинальный текст, а затем кодирования, которые, как UTF-8, затем декодирование как ISO-8859-1.

Это просто текст - после этого вам не нужно ничего делать, и вы никогда не увидите его в этом сломанном формате. Если вам нужно снова преобразовать текст в байты, а затем в строку, это означает, что вы уже потеряли, в основном.

Проверьте заголовки ответа HTTP, который возвращает JSON - я подозреваю, что вы обнаружите, что он утверждает, что данные ISO-8859-1, а не UTF-8. Кодировка должна соответствовать кодировке, указанной в заголовках, в противном случае вы окажетесь в таком эффекте.

Другая возможность заключается в том, что все, что возвращает JSON, точно дает вам данные, которые это знает о том, что данные разбиты вверх по течению. Вы должны следить за данными шаг за шагом (при условии, что вы владеете всеми ссылками в цепочке), пока не увидите, где вы впервые сталкиваетесь с этой неисправностью.

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