補足的なUnicode文字(たとえば、codepoint 10400)を文字列リテラルに入れるにはどうすればいいですか? 私はこのようなサロゲートペアを入れて試してみました:補足的なUnicode文字を文字列リテラルに入れる方法は?
String text = "TEST \uD801\uDC00";
System.out.println(text);
動作するようには思えません。
更新日:
良いニュースは、文字列が正しく構築されていることです。 UTF-8で
バイトアレイ:54 45 53 54 20 F0 UTF-16 90 90 80
バイト配列:FE、FF 0 54 0 45 0 53 0 54 0 20 D8 1直流0
悪いですニュースは、(私のFedoraボックスで)正しく印刷されず、予想されたシンボルの代わりに正方形が見えます(私のコンソールはユニコードを適切にサポートしていませんでした)。
あなたは動作するようには思えないと言うとき、あなたは何を意味するのですか? 'text.charAt(5)'の値は何ですか? – Mats
シンボルを正しく印刷しません。それは出力ストリームで何かになる可能性があります。 – n0rm1e
私は、「小さな箱」は、システムが表示できない文字を表すために使用されると信じています。これは単に、出力を表示しようとしているディスプレイでディスプレイに使用されているフォントが、その文字のグリフを提供していないことを意味します。 – neuralmer