2012-01-31 11 views
12

Kiedy mam JSON, to są \ u003c i \ u003e zamiast < i>. Chcę przekonwertować je z powrotem na utf-8 w Javie. Jakakolwiek pomoc będzie doceniona. Dzięki.Konwertuj znaki Unicode UTF-16 na UTF-8 w java

+0

3c i 3e * to * '<' and '>'. Do czego jest potrzebna konwersja? –

+0

możliwy duplikat [Jak konwertować ciągi do iz tablic znaków UTF8 w Javie] (http://stackoverflow.com/questions/88838/how-to-convert-strings-to-and-from-utf8-byte-arrays -in-java) – zellus

+2

Jakiego parsera JSON używasz? – McDowell

Odpowiedz

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) { 
} 

odnoszą http://www.exampledepot.com/egs/java.lang/unicodetoutf8.html

+0

Użyłem tej techniki również, ale to nie działa. Zwraca ten sam ciąg, który przekazuję ... chociaż działa w aplikacji testowej. Poniżej jest to, czego używam. \t static ciąg unicodeToUTF8 (ciąg unicodeStr) \t \t { \t \t \t // Konwersja z Unicode UTF-8 \t \t \t bajt [] = unicodeStr.getBytes UTF8 ("UTF-8"); \t \t String UTF8Str = ""; \t \t \t UTF8Str = nowy ciąg (utf8, "UTF-8"); \t \t \t return UTF8Str; \t \t} –

+0

działa w aplikacji testowej oznacza, że ​​jest jakiś problem w kodzie aplikacji sprawdź twise funkcję 'unicodeToUTF8'in aplikacji –

+0

Sprawdziłem to dużo czasu i na obu aplikacji testowej i żywe file.encoding to samo czyli cp1252. Jakie byłyby możliwe opcje? –

0

Można spróbować konwertowania ciąg do tablicy bajtów

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

i przekonwertować powrotem do obiektu łańcucha określając kodowanie UTF-8 jak

str = new String(utfString,"UTF-8") ;