2010-10-26 6 views
9

Il ya un certain nombre de messages sur Internet à ce sujet, mais aucun d'eux n'a été en mesure d'isoler et de résoudre le problème. J'essaie d'afficher certains symboles codés UTF-8 spéciaux stockés dans une base de données SQLite en utilisant un TextView, mais tout ce qu'il montre est des boîtes. Je comprends ce que cela signifie est que la bonne police n'est pas installée. Mais quand j'imprime ces symboles en utilisant la police Arial sur Mac cela fonctionne. J'essaie d'utiliser une police de caractères Arial sur le périphérique et l'émulateur.Afficher les caractères Unicode dans TextView Android

Tout conseil.

Répondre

3

Si je comprends bien votre situation, vous pouvez envisager la méthode StringEscapeUtils.unescapeXml(). Il se trouve dans le fichier common-lang.jar disponible ici: http://commons.apache.org/lang/

Il prendra des symboles codés (par exemple ' pour une apostrophe) et vous amènera à un caractère approprié.

7

Cela fonctionne sur votre Mac car la police utilisée par votre mac contient ces caractères spéciaux. Il serait impossible de créer un fichier de police contenant tous les caractères définis dans unicode. Les polices chinoises sont un bon exemple: aucun d'entre eux ne contient les 60 000 caractères chinois connus, car le fichier de police serait énorme et inutilisable. Vous pouvez essayer d'utiliser la police de votre Mac sur android (peut-être des problèmes de copyright - essayez de trouver une police gratuite qui contient les caractères: package le fichier (ttf) dans votre application, par exemple dans le dossier/assets, et puis dans votre charge de l'application de cette police avec

TypeFace TypeFace = Typeface.createFromAsset (AssetManager, "fontfile.ttf");

Vous pouvez alors l'utiliser dans un TextView comme ceci:

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

view.setTypeFace (typeFace);

Questions connexes