在unicode上的音乐符号在android上

时间:2017-07-11 07:03:14

标签: android unicode

我们想在View.onDraw()中绘制音乐符号,并发现unicode包含一些符号。here is the Code Chart   但是当我调用drawText(" \ u1D100")时,只有你编码后的四个字符,最后一个" 0"仍然用" 0"。如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

Java / Android中的字符串使用UTF-16编码。 \u转义符号最多支持4个十六进制数字。因此,要在U + FFFF上编码Unicode代码点,您必须将其编码为UTF-16代理对。这在Java / Android文档中有清楚的解释。

在UTF-16中,

U+1D1000xD834 0xDD00,因此请改用:

drawText("\uD834\uDD00", ...)

或者,您可以在运行时将Unicode代码点转换为char[]数组,然后绘制它:

char[] ch = Character.toChars(0x1D100);
drawText(ch, 0, ch.length, ...)

无论哪种方式,当然你必须使用实际支持U+1D100的字体。