2010-10-26 27 views
9

Hay una serie de publicaciones en Internet sobre este tema, sin embargo, ninguno de ellos ha podido aislar y resolver el problema.Mostrar caracteres Unicode en TextView Android

Estoy tratando de mostrar algunos símbolos especiales codificados en UTF-8 almacenados en una base de datos SQLite utilizando un TextView, sin embargo, todo lo que muestra son recuadros. Entiendo lo que esto significa es que la fuente correcta no está instalada. Pero cuando imprimo esos símbolos usando la fuente Arial en Mac, funciona.

Estoy tratando de usar un tipo de letra Arial en el dispositivo y el emulador.

Cualquier consejo.

Respuesta

3

Si entiendo su situación correctamente, quizás desee considerar el método StringEscapeUtils.unescapeXml(). Está en el archivo common-la.jar disponible aquí: http://commons.apache.org/lang/

Tomará símbolos codificados (por ejemplo, ' para un apóstrofo) y te llevará a un carácter adecuado.

7

Funciona en su Mac porque la fuente utilizada por su mac contiene esos caracteres especiales. Sería imposible crear un archivo de fuentes que contenga todos los caracteres definidos en Unicode. Las fuentes chinas son un buen ejemplo: ninguna de ellas contiene todos los ~ 60,000 caracteres chinos conocidos porque el archivo de fuente sería enorme e inutilizable.

Puede intentar usar la fuente de su Mac en Android (puede haber problemas de derechos de autor; intente encontrar una fuente libre que contenga los caracteres: empaquete el archivo (ttf) en su aplicación, por ejemplo en la carpeta/assets, y a continuación, en su carga de aplicaciones que font con

tipografía TypeFace = Typeface.createFromAsset (assetmanager, "fontfile.ttf");

a continuación, puede utilizar esto en un TextView así:

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

view.setTypeFace (typeFace);

Cuestiones relacionadas