-1
我們想要在View.onDraw()中繪製音樂符號,並發現unicode包含一些符號。 here is the Code Chart 但是當我調用drawText(「\ u1D100」)時,只有u編碼後的四個字符,最後的「0」仍然用「0」繪製。如何解決這個問題。android上的unicode中的音樂符號
我們想要在View.onDraw()中繪製音樂符號,並發現unicode包含一些符號。 here is the Code Chart 但是當我調用drawText(「\ u1D100」)時,只有u編碼後的四個字符,最後的「0」仍然用「0」繪製。如何解決這個問題。android上的unicode中的音樂符號
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
的字體。