我们想在View.onDraw()中绘制音乐符号,并发现unicode包含一些符号。here is the Code Chart 但是当我调用drawText(" \ u1D100")时,只有你编码后的四个字符,最后一个" 0"仍然用" 0"。如何解决这个问题。
答案 0 :(得分:1)
Java / Android中的字符串使用UTF-16编码。 \u
转义符号最多支持4个十六进制数字。因此,要在U + FFFF上编码Unicode代码点,您必须将其编码为UTF-16代理对。这在Java / Android文档中有清楚的解释。
U+1D100
为0xD834 0xDD00
,因此请改用:
drawText("\uD834\uDD00", ...)
或者,您可以在运行时将Unicode代码点转换为char[]
数组,然后绘制它:
char[] ch = Character.toChars(0x1D100);
drawText(ch, 0, ch.length, ...)
无论哪种方式,当然你必须使用实际支持U+1D100
的字体。