Comment écrire un symbole croisé unicode en Java?


J'essaie d'écrire ce symbole croix unicode(

Author: hippietrail, 2013-05-17

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.

 49
Author: Jon Skeet, 2013-05-17 19:06:40

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.

 3
Author: joshreesjones, 2013-05-17 19:06:16

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

 1
Author: Tap, 2013-05-17 19:24:33

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?

 0
Author: Aurand, 2013-05-17 19:08:33