Comment écrire un symbole croisé unicode en Java?
4 answers
Vous recherchez U+10035, qui est en dehors du Plan multilingue de base. Cela signifie que vous ne pouvez pas utiliser \u
pour spécifier la valeur, car cela ne traite que de U+0000 à U+FFFF - il y a toujours exactement quatre chiffres hexadécimaux après \u
. Donc, actuellement, vous avez U + 1003 ("MYANMAR LETTER GHA") suivi de '5'.
Malheureusement, Java ne fournit pas de forme littérale de chaîne qui rend les caractères en dehors du BMP simples à exprimer. La seule façon de l'inclure dans un littéral (mais toujours en ASCII) consiste à utiliser le Paire de substitution UTF-16 forme:
String cross = "\ud800\udc35";
Alternativement, vous pouvez utiliser la forme de point de code 32 bits comme int
:
String cross = new String(new int[] { 0x10035 }, 0, 1);
(Ces deux chaînes sont égales.)
Cela dit, votre console devrait toujours prendre en charge ce personnage - vous devrez l'essayer pour savoir s'il le fait ou non.
Je crois que Java représente les caractères Unicode de 0x0000
à 0xFFFF
. Java évaluerait "\u10035"
à tout ce que "\u1003"
est et un 5 après cela.
0x10035 est un caractère Unicode supplémentaire. Vous aurez besoin de la police qui le prend en charge si vous voulez que votre programme le rende.
Http://www.oracle.com/technetwork/articles/javase/supplementary-142654.html
Les échappements Unicode sont longs de 4 caractères. Vous imprimez \u1003 suivi de '5'. Êtes-vous sûr d'avoir le bon point de code?