【发布时间】:2011-06-09 11:30:01
【问题描述】:
我正在尝试在文本视图中显示 \u25BA unicode character,但是这样做
<TextView android:id="@+id/arrowright" android:layout_width="20dp"
android:layout_height="240dp" android:gravity="center" android:text="\u25BA"
android:textSize="14sp" android:textColor="#000000" />
只显示一个空矩形。这适用于其他字符,例如“\u2605”。
android可以显示的字符集有限制吗?
【问题讨论】:
-
任何设备可以显示的字符集是有限的:如果没有具有指定字形的字体,则无法显示。 no font 提供了整个 Unicode 规范的全面覆盖。
-
但是是否可以通过程序测试特定字符是否可以通过给定字体显示?
-
@Patrick:有可能在 Android 之外(或有根 Android)。您基本上打开字体文件(它是 OpenType)并根据 OpenType 规范 (microsoft.com/typography/otspec) 解释表格。例如,这就是这个工具的作用:mihai-nita.net/2007/09/08/charmapex-some-kind-of-character-map。 (当然还有大量直接编辑字体的应用程序 :-)
-
@Joachim:通常随 MSOffice 一起安装的
Arial Unicode字体包含大部分 Unicode 字符。它也相当大,超过 20MB。 -
@ccpizza:根据维基百科,Arial Unicode 的最新版本定义了 50,377 个字形(或 38,917 个字符)。 Unicode 标准 6.0 版定义了 109,449 个字符。我不会称之为“最”。虽然我同意它可能包含大多数人日常需要的大多数字符,但我的基本观点仍然存在:没有字体提供 完整 覆盖(而且这样的字体只会有有限的、专门的用途)。