Come inserire un carattere Unicode supplementare (ad esempio, il codice 10400) in una stringa letterale? Ho provato a mettere una coppia di surrogati come questo:Come inserire un carattere Unicode supplementare in una stringa letterale?
String text = "TEST \uD801\uDC00";
System.out.println(text);
ma non sembra funzionare.
UPDATE:
La buona notizia è, la stringa è costruito in modo corretto.
matrice Byte in UTF-8: 54 45 53 54 20 f0 90 90 80
Byte array in UTF-16: fe ff 0 54 0 45 0 53 0 54 0 20 d8 1 mb 0
Ma la cattiva la notizia è che non è stampata correttamente (nella mia scatola Fedora) e posso vedere un quadrato al posto del simbolo atteso (la mia console non supportava correttamente l'unicode).
Che cosa si intende quando si dice che non sembra funzionare? Qual è il valore di 'text.charAt (5)'? – Mats
Non stampa correttamente il simbolo. Potrebbe essere qualcosa con il flusso di output. – n0rm1e
Credo che "una piccola scatola" sia usata per rappresentare un carattere per il quale il sistema non può visualizzare. Ciò può significare semplicemente che il carattere che viene utilizzato nel display in cui si sta tentando di visualizzare l'output non fornisce un glifo per quel carattere. – neuralmer