2017-07-11 6 views

答えて

1

Java/Androidの文字列は、UTF-16を使用してエンコードされます。 \uエスケープ表記法は、最大4桁の16進数をサポートします。したがって、U + FFFFを超えるUnicodeコードポイントをエンコードするには、UTF-16サロゲートペアとしてエンコードする必要があります。これは、Java/Androidのドキュメントで明確に説明されています。

U+1D100はUTF-16で0xD834 0xDD00ので、代わりにこの使用します。また

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

を、実行時にchar[]アレイへのUnicodeコードポイントを変換し、それを描くことができます:

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

いずれにせよ、実際にはU+1D100をサポートするフォントを使用する必要があります。

関連する問題