2015-02-06 24 views
5

sto parsing alcuni unicodes da json al mio android app, l'API dà unicodes di icone come \ue600, quando aggiungo questo unicode direttamente nella textview come textview.setText("\ue600"); dà icona a destra sul textview . ma quando analizzo questo unicode da api & quindi I setText che unicode visualizza solo \ue600 su textview. Come analizzare o convertire queste stringhe in unicodes per ottenere le icone in textview.Come convertire stringa in unicode in Android

Grazie

+0

Ho già provato questo, ma niente funziona. – israr

+0

sì, ho provato la maggior parte del unicode. Visualizzano solo l'icona direttamente ma non visualizzano l'icona durante l'analisi di JSON – israr

+0

che stai ricevendo da un servizio di assistenza? in tal caso controlla la stringa db per abilitare UTF-8 – Muthu

risposta

4

convertire il vostro unicode in questo formato  & quindi utilizzare come questo nel tuo textviewtextview.setText(Html.fromHtml(your_unicode_here)); dovrebbe funzionare.

+0

by your_unicode_qui si intende un valore unicode codificato in modo rigido o una stringa analizzata da json – erluxman

+0

your_unicode_qui indica la stringa che viene analizzata da json. –

1

StringEscapeUtils fa la maggior parte del lavoro, ma va solo fino a HTML4. Per i personaggi non coperti puoi creare la tua classe e aggiungerla se necessario. Ecco una lezione di prova

public class HTMLDecoder { 
    public static String decodeHTML(String html) { 
     String out = StringEscapeUtils.unescapeHtml4(html); 
     out = out.replaceAll("®", "®"); 
     out = out.replaceAll("â\u0084¢", "™"); 
     return out; 
    } 
} 

Aggiunga al build.bradle

compile 'org.apache.commons:commons-lang3:3.0' 
0

Come si analizzano i dati JSON? Se si utilizza Gson, è possibile utilizzare il metodo GsonBuilder.disableHtmlEscaping() per visualizzare i caratteri corretti anziché il loro codice.

0
textview.setText(Html.fromHtml(UNICODE_CHARS)); 
1

I seguenti lavori vanno bene per me.

String unicode = "\u0048\u0065\u006C\u006C\u006F"; 
String Title = StringEscapeUtils.unescapeJava(unicode); 
System.out.println(Title); 

e aggiungere la dipendenza: compile 'commons-lang:commons-lang:2.6' nel file build.gradle.

Problemi correlati