2010-10-26 119 views
9

在这个主题上有很多关于互联网的帖子,但是他们都没有能够隔离和解决问题。在TextView中显示unicode字符Android

我想展示一些使用TextView存储在SQLite数据库中的一些特殊的UTF-8编码符号,然而它显示的是盒子。我明白这意味着没有安装正确的字体。但是当我在Mac上使用Arial字体打印这些符号时,它可以工作。

我想在设备和模拟器上使用Arial字体。

任何建议。

回答

3

如果我正确理解您的情况,您可能需要考虑StringEscapeUtils.unescapeXml()方法。这是在这里可用的common-lang.jar文件:http://commons.apache.org/lang/

它将采取编码符号(例如'为撇号),并让你到正确的字符。

7

它适用于您的Mac,因为您的Mac使用的字体包含这些特殊字符。创建一个包含unicode中定义的所有字符的字体文件是不可能的。中文字体就是一个很好的例子:它们都不包含所有约60.000个已知的中文字符,因为字体文件很大且不可用。

您可以尝试在Android上使用Mac上的字体(可能是版权问题 - 尝试查找包含字符的免费字体:在应用程序中打包(ttf)文件,例如在/ assets文件夹中,然后在与

字体字型字体应用程序负载= Typeface.createFromAsset(assetmanager, “fontfile.ttf”);

然后,您可以在一个TextView使用像这样:

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

view.setTypeFace(typeFace);