2012-01-31 3 views
12

Когда я получил JSON, тогда вместо < и> мы получаем \ u003c и \ u003e. Я хочу преобразовать их обратно в utf-8 в java. любая помощь будет высоко оценена. Благодарю.Преобразование символов Юникода UTF-16 в UTF-8 в java

+0

3с и 3д * являются * '' <' and '>. Для чего вам нужно что-то конвертировать? –

+0

Возможный дубликат [Как преобразовать строки в и из массивов байтов UTF8 в Java] (http://stackoverflow.com/questions/88838/how-to-convert-strings-to-and-from-utf8-byte-arrays -in-java) – zellus

+2

Какой парсер JSON вы используете? – McDowell

ответ

9
try { 
    // Convert from Unicode to UTF-8 
    String string = "\u003c"; 
    byte[] utf8 = string.getBytes("UTF-8"); 

    // Convert from UTF-8 to Unicode 
    string = new String(utf8, "UTF-8"); 
} catch (UnsupportedEncodingException e) { 
} 

см http://www.exampledepot.com/egs/java.lang/unicodetoutf8.html

+0

Я тоже использовал эту технику, но она не работает. Он возвращает ту же строку, которую я передаю ... хотя она работает в тестовом приложении. Ниже я использую. \t открытая статическая Строка unicodeToUTF8 (Строка unicodeStr) \t \t { \t \t \t // Преобразование из Unicode в UTF-8 \t \t \t байт [] utf8 = unicodeStr.getBytes ("UTF-8"); \t \t \t String UTF8Str = ""; \t \t \t UTF8Str = new String (utf8, "UTF-8"); \t \t \t возвращение UTF8Str; \t \t} –

+0

он работает в тестовом приложении означает, что есть некоторая проблема в коде приложения, пожалуйста, проверьте twice функцию 'unicodeToUTF8' в вашем приложении –

+0

Я проверил это много времени, и как для тестовых, так и для живых приложений file.encoding - то же самое cp1252. Каковы возможные варианты? –

0

Вы можете попробовать преобразовать строку в массив байтов

byte[] utfString = str.getBytes("UTF-8") ; 

и преобразовать его обратно в объект строки, указав кодировку UTF-8, как

str = new String(utfString,"UTF-8") ; 
Смежные вопросы