2017-07-11 87 views

回答

1

Java/Android中的字符串使用UTF-16編碼。 \u轉義符表示最多支持4個十六進制數字。因此,要在U + FFFF之上編碼一個Unicode碼點,您必須將其編碼爲UTF-16代理對。這在Java/Android文檔中有明確的解釋。

U+1D100是UTF-16 0xD834 0xDD00,所以用這個來代替:

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

或者,您也可以在運行時的Unicode碼點轉換爲char[]數組,然後繪製它:

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

無論哪種方式,當然你必須使用實際支持U+1D100的字體。