Comment écrire symbole unicode en Java?

j'essaie d'écrire ce symbole de croix unicode (

25
demandé sur hippietrail 2013-05-17 23:02:00

4 réponses

vous cherchez U+10035, qui est en dehors de la Plan Multilingue De Base. Cela signifie que vous ne pouvez pas utiliser \u pour spécifier la valeur, car cela ne concerne que 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 une forme littérale de chaîne de caractères qui rend les caractères en dehors du BMP simples à exprimer. Le seul moyen de l'inclure dans un littéral (mais toujours en ASCII) est d'utiliser le UTF-16 mère porteuse forme:

String cross = "\ud800\udc35";

vous pouvez aussi utiliser le code de 32 bits comme int:

String cross = new String(new int[] { 0x10035 }, 0, 1);

(Ces deux chaînes sont égales.)

cela dit, votre console devra encore supporter ce caractère - vous devrez l'essayer pour savoir si oui ou non elle le fait.

49
répondu Jon Skeet 2013-05-17 19:06:40

je crois que Java représente les caractères Unicode de 0x00000xFFFF. Java permettrait d'évaluer "\u10035" ce que "\u1003" is et un 5 Après ça.

3
répondu joshreesjones 2013-05-17 19:06:16

0x10035 est un caractère Unicode supplémentaire. Vous aurez besoin de police qui le supporte si vous voulez que votre programme le rende.

http://www.oracle.com/technetwork/articles/javase/supplementary-142654.html

1
répondu Tap 2013-05-17 19:24:33

Unicode échappe à 4 caractères de long. Vous imprimez \u1003 suivi de'5'. Êtes-vous sûr que vous avez le droit de point de code?

0
répondu Aurand 2013-05-17 19:08:33