Dopo aver fatto qualche lettura più profonda, il javadoc dice che i metodi basati su Characterchar
parametri non supportano tutti i valori Unicode, ma quei punti di codice che assumono (vale a dire, int
) fanno.
Quindi, ho iniziato ad esibirmi il seguente test:
int codePointCopyright = Integer.parseInt("00A9", 16);
System.out.println(Integer.toHexString(codePointCopyright));
System.out.println(Character.isValidCodePoint(codePointCopyright));
char[] toChars = Character.toChars(codePointCopyright);
System.out.println(toChars);
System.out.println();
int codePointAsian = Integer.parseInt("20011", 16);
System.out.println(Integer.toHexString(codePointAsian));
System.out.println(Character.isValidCodePoint(codePointAsian));
char[] toCharsAsian = Character.toChars(codePointAsian);
System.out.println(toCharsAsian);
e sto ottenendo:
Pertanto, non dovrei parlare char
nella mia interrogazione, ma piuttosto di matrice di caratteri, poiché i caratteri Unicode possono essere rappresentati con più di uno char
. Dall'altro lato, uno int
copre tutto.
Ho inviato una risposta ma penso che potrei farlo all'indietro da quello che vuoi. Potresti chiarire con un esempio dell'output che stai cercando? – noel
Dire, per carattere ö, mi piacerebbe '00F6' come elencato qui: http://en.wikipedia.org/wiki/List_of_Unicode_characters – JVerstry
OK, allora la mia risposta dovrebbe funzionare. – noel