2010-10-26 20 views
9

Su questo argomento sono presenti numerosi post su Internet, tuttavia nessuno di essi è stato in grado di isolare e risolvere il problema.Visualizza caratteri unicode in TextView Android

Sto cercando di mostrare alcuni simboli speciali con codifica UTF-8 memorizzati in un database SQLite utilizzando un TextView, ma tutto ciò che mostra sono riquadri. Capisco cosa significa che il font giusto non è installato. Ma quando stampo quei simboli usando il font Arial su Mac funziona.

Sto cercando di utilizzare un carattere Arial sul dispositivo e l'emulatore.

Qualsiasi consiglio.

risposta

3

Se sto capendo correttamente la tua situazione, potresti prendere in considerazione il metodo StringEscapeUtils.unescapeXml(). Si trova nel file common-lang.jar disponibile qui: http://commons.apache.org/lang/

Verranno utilizzati i simboli codificati (ad esempio ' per un apostrofo) e ottenere un carattere corretto.

7

Funziona sul tuo Mac perché il carattere utilizzato dal tuo Mac contiene quei caratteri speciali. Sarebbe impossibile creare un fontfile che contenga tutti i caratteri definiti in unicode. I caratteri cinesi sono un buon esempio: nessuno di essi contiene tutti i ~ 60.000 caratteri cinesi conosciuti perché il file del font sarebbe enorme e inutilizzabile.

Puoi provare a usare il carattere del tuo Mac su Android (potrebbero essere problemi di copyright - prova a cercare un font gratuito che contenga i caratteri: impacchetta il file (ttf) nell'applicazione, ad esempio nella cartella/assets, e poi nel vostro carico dell'applicazione quel tipo di carattere con

TypeFace carattere tipografico = Typeface.createFromAsset (assetmanager, "file-carattere.ttf");

è possibile utilizzare questo in un TextView in questo modo:

TextView view = (TextView) findById (R.id.mytext);

view.setTypeFace (typeFace);