Imprimer les noms des personnages

42

Chaque caractère Unicode a un nom, comme "LETTRE MAJUSCULE LATINE A". Un nom de caractère Unicode ne peut contenir que des lettres majuscules, des espaces et le signe moins.

Ecrivez un programme qui lit un texte et affiche les noms de chaque caractère sur une nouvelle ligne. Par exemple, si l’entrée était "Hello, World!", La sortie serait

LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK
  • Les entrées doivent provenir d'un fichier ou d'une entrée utilisateur, et pas simplement d'une chaîne de code.
  • La sortie doit être écrite dans un fichier ou une sortie standard ou imprimée à l'écran.
  • Internet et les bibliothèques externes ne sont pas autorisés, toutes les données nécessaires doivent être dans le code.
  • Supposons que l'entrée ne contienne que des caractères ASCII imprimables compris dans la plage de codes 32-126 de Basic Latin. Vous pouvez ignorer une nouvelle ligne.
  • Tous les langages de programmation autorisés. Le code le plus court en octets gagne.

Les noms de caractères officiels Unicode peuvent être trouvés ici . Autres sources:

C’est ma première question. J'apprécierais donc toute suggestion si cela peut être amélioré.

Pour les besoins de ce défi, la liste ci-dessous doit être normative.

    32  0020        SPACE
!   33  0021        EXCLAMATION MARK
"   34  0022        QUOTATION MARK
#   35  0023        NUMBER SIGN
$   36  0024        DOLLAR SIGN
%   37  0025        PERCENT SIGN
&   38  0026        AMPERSAND
'   39  0027        APOSTROPHE
(   40  0028        LEFT PARENTHESIS
)   41  0029        RIGHT PARENTHESIS
*   42  002A        ASTERISK
+   43  002B        PLUS SIGN
,   44  002C        COMMA
-   45  002D        HYPHEN-MINUS
.   46  002E        FULL STOP
/   47  002F        SOLIDUS
0   48  0030        DIGIT ZERO
1   49  0031        DIGIT ONE
2   50  0032        DIGIT TWO
3   51  0033        DIGIT THREE
4   52  0034        DIGIT FOUR
5   53  0035        DIGIT FIVE
6   54  0036        DIGIT SIX
7   55  0037        DIGIT SEVEN
8   56  0038        DIGIT EIGHT
9   57  0039        DIGIT NINE
:   58  003A        COLON
;   59  003B        SEMICOLON
<   60  003C        LESS-THAN SIGN
=   61  003D        EQUALS SIGN
>   62  003E        GREATER-THAN SIGN
?   63  003F        QUESTION MARK
@   64  0040        COMMERCIAL AT
A   65  0041        LATIN CAPITAL LETTER A
B   66  0042        LATIN CAPITAL LETTER B
C   67  0043        LATIN CAPITAL LETTER C
D   68  0044        LATIN CAPITAL LETTER D
E   69  0045        LATIN CAPITAL LETTER E
F   70  0046        LATIN CAPITAL LETTER F
G   71  0047        LATIN CAPITAL LETTER G
H   72  0048        LATIN CAPITAL LETTER H
I   73  0049        LATIN CAPITAL LETTER I
J   74  004A        LATIN CAPITAL LETTER J
K   75  004B        LATIN CAPITAL LETTER K
L   76  004C        LATIN CAPITAL LETTER L
M   77  004D        LATIN CAPITAL LETTER M
N   78  004E        LATIN CAPITAL LETTER N
O   79  004F        LATIN CAPITAL LETTER O
P   80  0050        LATIN CAPITAL LETTER P
Q   81  0051        LATIN CAPITAL LETTER Q
R   82  0052        LATIN CAPITAL LETTER R
S   83  0053        LATIN CAPITAL LETTER S
T   84  0054        LATIN CAPITAL LETTER T
U   85  0055        LATIN CAPITAL LETTER U
V   86  0056        LATIN CAPITAL LETTER V
W   87  0057        LATIN CAPITAL LETTER W
X   88  0058        LATIN CAPITAL LETTER X
Y   89  0059        LATIN CAPITAL LETTER Y
Z   90  005A        LATIN CAPITAL LETTER Z
[   91  005B        LEFT SQUARE BRACKET
\   92  005C        REVERSE SOLIDUS
]   93  005D        RIGHT SQUARE BRACKET
^   94  005E        CIRCUMFLEX ACCENT
_   95  005F        LOW LINE
`   96  0060        GRAVE ACCENT
a   97  0061        LATIN SMALL LETTER A
b   98  0062        LATIN SMALL LETTER B
c   99  0063        LATIN SMALL LETTER C
d   100 0064        LATIN SMALL LETTER D
e   101 0065        LATIN SMALL LETTER E
f   102 0066        LATIN SMALL LETTER F
g   103 0067        LATIN SMALL LETTER G
h   104 0068        LATIN SMALL LETTER H
i   105 0069        LATIN SMALL LETTER I
j   106 006A        LATIN SMALL LETTER J
k   107 006B        LATIN SMALL LETTER K
l   108 006C        LATIN SMALL LETTER L
m   109 006D        LATIN SMALL LETTER M
n   110 006E        LATIN SMALL LETTER N
o   111 006F        LATIN SMALL LETTER O
p   112 0070        LATIN SMALL LETTER P
q   113 0071        LATIN SMALL LETTER Q
r   114 0072        LATIN SMALL LETTER R
s   115 0073        LATIN SMALL LETTER S
t   116 0074        LATIN SMALL LETTER T
u   117 0075        LATIN SMALL LETTER U
v   118 0076        LATIN SMALL LETTER V
w   119 0077        LATIN SMALL LETTER W
x   120 0078        LATIN SMALL LETTER X
y   121 0079        LATIN SMALL LETTER Y
z   122 007A        LATIN SMALL LETTER Z
{   123 007B        LEFT CURLY BRACKET
|   124 007C        VERTICAL LINE
}   125 007D        RIGHT CURLY BRACKET
~   126 007E        TILDE
moi et mon chat
la source
4
Bonjour, je suis allé de l'avant et modifié votre question, annulez si vous n'êtes pas d'accord. Vous n'avez pas besoin de davantage de sources d'informations, vous en avez besoin d' une , version normative dans la question, pour éviter les problèmes de divergences. J'ai choisi ssec.wisc.edu/~tomw/java/unicode.html#x0000 car c'était le plus concis. Autre que cela, +1
Level River St
Merci pour l'édition @steveverrill, j'étais trop paresseux pour le faire moi-même.
moi et mon chat
Apparemment, les valeurs sont disponibles dans Windows, dans Windows C:\Windows\System32\getuname.dll. Est-ce que cela compte aussi comme une "bibliothèque externe", même si elle est intégrée à Windows?
lc.
6
Je viens d'apprendre le mot solidus.
Luc

Réponses:

31

Java - 113 octets (152 si lus depuis la ligne de commande)

Edit: Suppression des accolades inutiles.

Edit2: suppression de la variable inutile.

Edit3: Au lieu de Character.getName (), j'utilise c.getName ().

Edit4: Passer une chaîne en tant qu'argument de ligne de commande.

Avec argument de ligne de commande (113 octets):

class Z{public static void main(String[]x){for(Character c:x[0].toCharArray())System.out.println(c.getName(c));}}

Avec ligne de lecture (152 octets):

class Z{public static void main(String[]x){for(Character c:new java.util.Scanner(System.in).nextLine().toCharArray())System.out.println(c.getName(c));}}

Java a tout ce qu'il faut. Je suis sûr que cela pourrait être joué au golf.

Peter Lenkefi
la source
7
Zut! Un construit! Afin de faire de ce défi un défi intéressant, j’estimerais que cela n’est pas conforme à "toutes les données nécessaires devraient figurer dans le code". Très intelligent, cependant.
Level River St
1
@steveverrill Oh bien :). J'ai vu un autre défi où Common Lisp a fait quelque chose de similaire (en comptant de un à 100 si je me souviens bien).
Peter Lenkefi
6
Wow, cette fois Java a la chance de battre beaucoup de langues de golf.
vsz
4
Solution Java 8 alternative: x[0].chars().forEach(i->System.out.println(Character.getName(i)));cette option enregistre 2 caractères par rapport à la solution en argument de ligne de commande (en remplaçant la forboucle).
hjk
3
Ou peutx[0].chars().map(' '::getName).forEach(System.out::println);
Eric
18

Python 3, 56 octets

Utilise une fonction intégrée unicodedata.name(), elle peut donc être non compétente. La réponse Java l'a fait de la même manière, alors j'ai pensé que cela valait au moins la peine d'être publié.

from unicodedata import*
for i in input():print(name(i))
mbomb007
la source
Je voulais aussi en poster un en python mais ma réponse java était assez trompeuse :).
Peter Lenkefi
1
for i in input():print(unicodedata.name(i))Est sûrement plus courte?
Eric
1
@ Eric Non. Tu dois le faire import unicodedata, donc c'est plus long .
mbomb007
17

JavaScript (ES6) 594 618 626

Remarque: Je pourrais économiser environ 30 octets en compressant la chaîne longue avec atob / btoa, mais les caractères utf8 au-dessus de '~' ne sont pas bien acceptés par l'éditeur de publication Stack Exchange. Je préfère garder un extrait en cours d'exécution à la place.

Éditez 8 caractères sauvegardés thy @Ypnypn

Compression évidente de mots répétés. La nouvelle ligne à l'intérieur des backticks est significative et comptée.

Testez l'exécution de l'extrait de code dans Firefox.

// TEST SUITE
// for testing purpose, redefine alert() to write inside the snippet body
alert=x=>O.innerHTML=x
// for testing purpose, redefine prompt() to have a default text containing all characters
_prompt=prompt
prompt=(i,s)=>{
  for(s='',i=32;i<127;i++)s+=String.fromCharCode(i);
  return _prompt("Insert your message or keep the default",s);
}  
  
// That's the answer code:
z='SPACE/EXCLAMA0QUOTA0NUMBER1DOLLAR1PERCENT1AMPERSAND/APOSTROPHE3242ASTERISK/PLUS1COMMA/HYPHEN-MINUS/FULL STOP/78ZERO8ONE8TWO8THREE8FOUR8FIVE8SIX8SEVEN8EIGHT8NINE86SEMI6LESS-THAN1EQUALS1GREATER-THAN1QUES0COMMERCIAL AT3SQUARE5REVERSE 7/4SQUARE5CIRCUMFLEX9/LOW LINE/GRAVE93CURLY5VERTICAL LINE/4CURLY5TILDE'.replace(/\d/g,c=>'TION MARK/, SIGN/,PARENTHESIS/,/LEFT ,RIGHT , BRACKET/,COLON/,SOLIDUS,/DIGIT , ACCENT'.split`,`[c]).split`/`,alert([...prompt()].map(c=>(q=c.charCodeAt()-32)<33?z[q]:q<59?'LATIN CAPITAL LETTER '+c:q<65?z[q-26]:q<91?'LATIN SMALL LETTER '+c.toUpperCase():z[q-52]).join`
`)
<pre id=O></pre>

edc65
la source
9

R, 54 octets 62

library(Unicode)
cat(u_char_name(utf8ToInt(scan(,""))),sep="\n")

Edit: par commentaire @flodels, je dois d'abord le lire depuis la connexion, donc je devais ajouter scan. C'est aussi probablement une solution non compétente selon toutes les règles.

Usage

> cat(u_char_name(utf8ToInt(scan(,""))),sep="\n")
1: 'Hello, World!'
2: 
Read 1 item
LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK

Vous pouvez également l'intégrer dans une fonction pour une utilisation plus pratique

UNI <- function(x)cat(paste0(u_char_name(utf8ToInt(x)),"\n"))

Ensuite, l'utilisation est juste

UNI("Hello, World!")
David Arenburg
la source
1
Votre nombre d'octets est correct :)
Beta Decay
1
Et bienvenue chez PPCG! : D
Beta Decay
C'est bien pour vous d'avoir un construit pour la tâche, mais le résultat n'est pas ce qui est demandé - table à 4 colonnes au lieu d'une table à 1 colonne. Je pense que vous devriez ajouter un noyau pour obtenir la sortie correcte
edc65
@ edc65 aussi facile à réparer, je l’ai pensé comme un bonus.
David Arenburg
@ edc65 l'a corrigé.
David Arenburg
7

Perl 6 , 21 octets

Je n'ai pas vu de règle spécifique contre l'utilisation d'une méthode intégrée pour obtenir les noms unicode.
(La réponse Java, qui est actuellement la plus votée, fait de même)

.say for get.uninames
Brad Gilbert b2gills
la source
1
Perl 6 est bizarre. Je l'aime, cependant.
Chat
6

Perl (+ coreutils) , 563 octets

Note : Le fichier ci-dessous ne fonctionnera pas tel quel, il doit être reproduit à partir de la xxdsauvegarde ci-dessous! J'ai essayé de transmettre les données brutes directement zcat, mais cela a échoué. Je pourrais juste utiliser un module natif Perl Gzip, mais ce sera demain, c'est sûr!

use MIME::Base64;$x=encode_base64(join'',<DATA>);print eval(`base64 -D<<<'$x'|zcat`)->[-32+ord$_].$/for<>=~/./g
__END__
.....x.U.._.u.[r. .@.._~.E(X.i..............J_....1..N......7K......|ih....P...a7......,a.....o.!.=N.K.i.....$..vFv.Pv..........*o...=..|o..O.B..c%2\bj1Gr...nr.|c.{...q......3......aw;b\1...C.Yp..l..K...bB..2C...K..O8e.v...."..C..
.s; .}Oj.....JC..-`@[email protected].&.&.&.&.&.MdM.&.;..X5q..M.wM|o....3.s.{....MJf4.h>G..B...~$....w...WC.q.2..b.o..Hh.7|.... c..(.I......d|.1...8.8.8.x.q.1.X..*.U.W..d|.....f..4f...l..g'>..oUq4.....j.jU...
0000000: 7573 6520 4d49 4d45 3a3a 4261 7365 3634  use MIME::Base64
0000010: 3b24 783d 656e 636f 6465 5f62 6173 6536  ;$x=encode_base6
0000020: 3428 6a6f 696e 2727 2c3c 4441 5441 3e29  4(join'',<DATA>)
0000030: 3b70 7269 6e74 2065 7661 6c28 6062 6173  ;print eval(`bas
0000040: 6536 3420 2d44 3c3c 3c27 2478 277c 7a63  e64 -D<<<'$x'|zc
0000050: 6174 6029 2d3e 5b2d 3332 2b6f 7264 245f  at`)->[-32+ord$_
0000060: 5d2e 242f 666f 723c 3e3d 7e2f 2e2f 670a  ].$/for<>=~/./g.
0000070: 5f5f 454e 445f 5f0a 1f8b 0808 ff78 ec55  __END__......x.U
0000080: 0003 5f00 7594 5b72 eb20 0c40 b7c2 5f7e  .._.u.[r. .@.._~
0000090: da45 2858 b669 c4c3 089c a49d ee7f 1b17  .E(X.i..........
00000a0: 92b1 9df4 4a5f 96ce d180 3192 7f4e 9cc0  ....J_....1..N..
00000b0: e2e9 e384 374b e0a1 b818 8c87 7c69 68a9  ....7K......|ih.
00000c0: b1bc 8150 fd19 b361 3785 960d 9108 f62c  ...P...a7......,
00000d0: 61b6 18ca 9682 6f80 210c 3d4e 914b 8e69  a.....o.!.=N.K.i
00000e0: eefb 108e c524 c8ad 7646 76dc 5076 d3fc  .....$..vFv.Pv..
00000f0: 9701 17cc 8efb ae89 2a6f cbda e83d b4e7  ........*o...=..
0000100: 7c6f ab85 4fef 42ed d563 2532 5c62 6a31  |o..O.B..c%2\bj1
0000110: 4772 c383 0e6e 72c5 7c63 8e7b 1203 ee71  Gr...nr.|c.{...q
0000120: b91e bccc 190f 33c6 9a8f c4ad 8761 773b  ......3......aw;
0000130: 625c 31ec 19f6 43ec 5970 8f8d 6ca4 d84b  b\1...C.Yp..l..K
0000140: 18bd db62 42e6 cf32 43d8 ce84 4b05 da4f  ...bB..2C...K..O
0000150: 3865 8476 f4b7 8aa5 22bf de43 ff0a ed73  8e.v...."..C...s
0000160: 3b20 037d 4f6a b714 8c85 e44a 4384 a52d  ; .}Oj.....JC..-
0000170: 6040 1367 4d58 4d0c 9a40 4d8c 9a98 3431  `@[email protected]
0000180: 6bc2 69e2 4b13 174d 9026 bc26 8226 a226  k.i.K..M.&.&.&.&
0000190: 9226 164d 644d b026 d43b af9a 5835 71d5  .&.MdM.&.;..X5q.
00001a0: c44d 1377 4d7c 6fd3 cdad a133 9a73 067b  .M.wM|o....3.s.{
00001b0: c1fe aeb9 4d4a 6634 c768 3e47 febf 42eb  ....MJf4.h>G..B.
00001c0: b2ad 7e24 bc19 b0fd 77d2 978c 5743 cf71  ..~$....w...WC.q
00001d0: 9a32 acf8 621e 6fc1 1e48 68fa 377c 96b1  .2..b.o..Hh.7|..
00001e0: 95f1 2063 94f1 28e3 49c6 b38c 9d8c bf64  .. c..(.I......d
00001f0: 7c91 31c9 d8cb 38c8 38ca 38c9 7891 7196  |.1...8.8.8.x.q.
0000200: 31cb 58b9 cb2a e355 c657 19df 647c 97f1  1.X..*.U.W..d|..
0000210: dec2 b666 babf 3466 ebdf e26c eff5 6727  ...f..4f...l..g'
0000220: 3efb f76f 5571 34e0 e9f7 1fe2 6a1f 6a55  >..oUq4.....j.jU
0000230: 0700 00                                  ...

Pour reproduire le fichier, exécutez:

xxd -r > 57413.pl

collez l'hexdump et appuyez sur Enter, puis sur Ctrl+ D.

Courir comme:

perl 57413.pl <<< 'Hello, World!'
LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK

Version précédente en Perl pur, 893 octets

print[SPACE,'EXCLAMATION MARK','QUOTATION MARK',NUMBER.($s=" SIGN"),DOLLAR.$s,PERCENT.$s,AMPERSAND,APOSTROPHE,LEFT.($p=" PARENTHESIS"),RIGHT.$p,ASTERISK,PLUS.$s,COMMA,'HYPHEN-MINUS','FULL STOP',$d=SOLIDUS,($d="DIGIT ").ZERO,$d.ONE,$d.TWO,$d.THREE,$d.FOUR,$d.FIVE,$d.SIX,$d.SEVEN,$d.EIGHT,$d.NINE,COLON,SEMICOLON,"LESS-THAN$s",EQUALS.$s,"GREATER-THAN$s",'QUESTION MARK','COMMERCIAL AT',($b=($a=LATIN)." CAPITAL ".($l="LETTER ")).A,$b.B,$b.C,$b.D,$b.E,$b.F,$b.G,$b.H,$b.I,$b.J,$b.K,$b.L,$b.M,$b.N,$b.O,$b.P,$b.Q,$b.R,$b.S,$b.T,$b.U,$b.V,$b.W,$b.X,$b.Y,$b.Z,'LEFT SQUARE '.($e=BRACKET),"REVERSE $d","RIGHT SQUARE $e",'CIRCUMFLEX ACCENT','LOW LINE','GRAVE ACCENT',($m="$a SMALL $l ").A,$m.B,$m.C,$m.D,$m.E,$m.F,$m.G,$m.H,$m.I,$m.J,$m.K,$m.L,$m.M,$m.N,$m.O,$m.P,$m.Q,$m.R,$m.S,$m.T,$m.U,$m.V,$m.W,$m.X,$m.Y,$m.Z,"LEFT CURLY $e",'VERTICAL LINE',"RIGHT CURLY $e",TILDE]->[-32+ord$_].$/for<>=~/./g
Dom Hastings
la source
5

awk - 794 739

     1 LETTRE MAJUSCULE LATINE B
     2 LETTRE MAJUSCULE LATINE E
     3 LETTRE MAJUSCULE LATINE G
     4 LETTRE MAJUSCULE LATINE I
     5 LETTRE MAJUSCULE LATINE N
     6 SUPPORT COURBE GAUCHE 
     7 LETTRE MINUSCULE LATINE S
     8 LETTRE MINUSCULE LATINE P
     9 LETTRE MINUSCULE LATINE L
    10 LETTRE MINUSCULE LATINE I
    11 LETTRE MINUSCULE LATINE T
    12 PARENTHÈSE GAUCHE 
    13 MARQUE DE CITATION 
    14 LETTRE MINUSCULE LATINE I
    15 COMMA 
    16 LETTRE MAJUSCULE LATINE L
    17 LETTRE MINUSCULE LATINE V
    18 COMMA 
    19 LETTRE MAJUSCULE LATINE S
    20 LETTRE MINUSCULE LATINE V
    21 COMMA 
    22 LETTRE MINUSCULE LATINE A
    23 LETTRE MINUSCULE LATINE X
    24 COMMA 
    25 ACCENT CIRCONFLEX 
    26 LETTRE MINUSCULE LATINE X
    27 COMMA 
    28 SUPPORT CARRÉ GAUCHE 
    29 LETTRE MINUSCULE LATINE X
    30 COMMA 
    31 LETTRE MAJUSCULE LATINE Q
    32 COMMA 
    33 LETTRE MAJUSCULE LATINE O
    34 COMMA 
    35 LETTRE MINUSCULE LATINE T
    36 LETTRE MAJUSCULE LATINE K
    37 COMMA 
    38 LETTRE MINUSCULE LATINE C
    39 LETTRE MAJUSCULE LATINE K
    40 COMMA 
    41 LETTRE MAJUSCULE LATINE V
    42 COMMA 
    43 LETTRE MINUSCULE LATINE Q
    44 LETTRE MINUSCULE LATINE X
    45 COMMA 
    46 LETTRE MINUSCULE LATINE G
    47 COMMA 
    48 LETTRE DE CAPITALE LATINE I
    49 COMMA 
    50 LETTRE MINUSCULE LATINE W
    51 LETTRE MINUSCULE LATINE U
    52 COMMA 
    53 LETTRE MAJUSCULE LATINE X
    54 COMMA 
    55 LETTRE MINUSCULE LATINE B
    56 LETTRE MINUSCULE LATINE Y
    57 COMMA 
    58 LETTRE MINUSCULE LATINE B
    59 SUPPORT COURBE GAUCHE 
    60 COMMA 
    61 LETTRE MINUSCULE LATINE B
    62 LETTRE MINUSCULE LATINE Z
    63 COMMA 
    64 LETTRE MINUSCULE LATINE B
    65 LETTRE MINUSCULE LATINE D
    66 COMMA 
    67 LETTRE MINUSCULE LATINE B
    68 LETTRE MINUSCULE LATINE P
    69 COMMA 
    70 LETTRE MINUSCULE LATINE B
    71 LETTRE MINUSCULE LATINE R
    72 COMMA 
    73 LETTRE MINUSCULE LATINE B
    74 SUPPORT DE CURLY DROIT 
    75 COMMA 
    76 LETTRE MINUSCULE LATINE B
    77 LETTRE MINUSCULE LATINE K
    78 COMMA 
    79 LETTRE MINUSCULE LATINE B
    80 LETTRE MINUSCULE LATINE L
    81 COMMA 
    82 LETTRE MINUSCULE LATINE B
    83 LETTRE MINUSCULE LATINE O
    84 COMMA 
    85 LETTRE MINUSCULE LATINE E
    86 COMMA 
    87 LETTRE MAJUSCULE LATINE P
    88 COMMA 
    89 LETTRE MAJUSCULE LATINE R
    90 LETTRE MINUSCULE LATINE X
    91 COMMA 
    92 BASSE LIGNE 
    93 LETTRE MINUSCULE LATINE X
    94 COMMA 
    95 LETTRE MAJUSCULE LATINE J
    96 LETTRE MINUSCULE LATINE X
    97 COMMA 
    98 LETTRE MAJUSCULE LATINE U
    99 LETTRE MINUSCULE LATINE V
   100 COMMA 
   101 LETTRE MAJUSCULE LATINE M
   102 TILDE 
   103 COMMA 
   104 ESPACE 
   105 LETTRE MINUSCULE LATINE T
   106 ACCENT GRAVE 
   107 LETTRE MAJUSCULE LATINE
   108 COMMA 
   109 LETTRE MAJUSCULE LATINE Z
   110 LETTRE MAJUSCULE LATINE X
   111 COMMA 
   112 LETTRE MINUSCULE LATINE C
   113 ACCENT GRAVE 
   114 LETTRE MAJUSCULE LATINE
   115 COMMA 
   116 LETTRE MAJUSCULE LATINE N
   117 REVERSE SOLIDUS 
   118 REVERSE SOLIDUS 
   119 COMMA 
   120 LIGNE VERTICALE 
   121 LETTRE MINUSCULE LATINE S
   122 COMMA 
   123 LETTRE MINUSCULE LATINE M
   124 REVERSE SOLIDUS 
   125 REVERSE SOLIDUS 
   126 COMMA 
   127 ESPACE 
   128 LETTRE MINUSCULE LATINE T
   129 LETTRE MINUSCULE LATINE H
   130 LETTRE MAJUSCULE LATINE
   131 COMMA 
   132 LETTRE MAJUSCULE LATINE T
   133 LETTRE MINUSCULE LATINE S
   134 COMMA 
   135 LETTRE MINUSCULE LATINE C
   136 LETTRE MINUSCULE LATINE H
   137 LETTRE MAJUSCULE LATINE
   138 COMMA 
   139 LETTRE MINUSCULE LATINE F
   140 ESPACE 
   141 LETTRE MAJUSCULE LATINE H
   142 LETTRE MAJUSCULE LATINE
   143 LETTRE MAJUSCULE LATINE P
   144 LETTRE MAJUSCULE LATINE H
   145 LETTRE MAJUSCULE LATINE E
   146 LETTRE MAJUSCULE LATINE N
   147 HYPHEN-MINUS 
   148 LETTRE MAJUSCULE LATINE M
   149 LETTRE DE CAPITALE LATINE I
   150 LETTRE MAJUSCULE LATINE N
   151 LETTRE MAJUSCULE LATINE U
   152 LETTRE MAJUSCULE LATINE S
   153 ESPACE 
   154 LETTRE MAJUSCULE LATINE G
   155 LETTRE MAJUSCULE LATINE R
   156 LETTRE MAJUSCULE LATINE E
   157 LETTRE MAJUSCULE LATINE A
   158 LETTRE MAJUSCULE LATINE T
   159 LETTRE MAJUSCULE LATINE E
   160 LETTRE MAJUSCULE LATINE R
   161 HYPHEN-MINUS 
   162 LETTRE MAJUSCULE LATINE T
   163 LETTRE MAJUSCULE LATINE H
   164 LETTRE MAJUSCULE LATINE A
   165 LETTRE MAJUSCULE LATINE N
   166 ESPACE 
   167 LETTRE MAJUSCULE LATINE P
   168 LETTRE MAJUSCULE LATINE A
   169 LETTRE MAJUSCULE LATINE R
   170 LETTRE MAJUSCULE LATINE E
   171 LETTRE MAJUSCULE LATINE N
   172 LETTRE MAJUSCULE LATINE T
   173 LETTRE MAJUSCULE LATINE H
   174 LETTRE MAJUSCULE LATINE E
   175 LETTRE MAJUSCULE LATINE S
   176 LETTRE DE CAPITALE LATINE I
   177 LETTRE MAJUSCULE LATINE S
   178 ESPACE 
   179 LETTRE MAJUSCULE LATINE E
   180 LETTRE MAJUSCULE LATINE X
   181 LETTRE MAJUSCULE LATINE C
   182 LETTRE MAJUSCULE LATINE L
   183 LETTRE MAJUSCULE LATINE A
   184 LETTRE MAJUSCULE LATINE M
   185 LETTRE MAJUSCULE LATINE A
   186 LETTRE MAJUSCULE LATINE T
   187 LETTRE DE CAPITALE LATINE I
   188 LETTRE MAJUSCULE LATINE O
   189 LETTRE MAJUSCULE LATINE N
   190 ESPACE 
   191 LETTRE MAJUSCULE LATINE C
   192 LETTRE MAJUSCULE LATINE O
   193 LETTRE MAJUSCULE LATINE M
   194 LETTRE MAJUSCULE LATINE M
   195 LETTRE MAJUSCULE LATINE E
   196 LETTRE MAJUSCULE LATINE R
   197 LETTRE MAJUSCULE LATINE C
   198 LETTRE DE CAPITALE LATINE I
   199 LETTRE MAJUSCULE LATINE A
   200 LETTRE MAJUSCULE LATINE L
   201 ESPACE 
   202 LETTRE MAJUSCULE LATINE C
   203 LETTRE MAJUSCULE LATINE I
   204 LETTRE MAJUSCULE LATINE R
   205 LETTRE MAJUSCULE LATINE C
   206 LETTRE MAJUSCULE LATINE U
   207 LETTRE MAJUSCULE LATINE M
   208 LETTRE MAJUSCULE LATINE F
   209 LETTRE MAJUSCULE LATINE L
   210 LETTRE MAJUSCULE LATINE E
   211 LETTRE MAJUSCULE LATINE X
   212 ESPACE 
   213 LETTRE MAJUSCULE LATINE A
   214 LETTRE MAJUSCULE LATINE P
   215 LETTRE MAJUSCULE LATINE O
   216 LETTRE MAJUSCULE LATINE S
   217 LETTRE MAJUSCULE LATINE T
   218 LETTRE MAJUSCULE LATINE R
   219 LETTRE MAJUSCULE LATINE O
   220 LETTRE MAJUSCULE LATINE P
   221 LETTRE MAJUSCULE LATINE H
   222 LETTRE MAJUSCULE LATINE E
   223 ESPACE 
   224 LETTRE MAJUSCULE LATINE S
   225 LETTRE MAJUSCULE LATINE E
   226 LETTRE MAJUSCULE LATINE M
   227 LETTRE MAJUSCULE LATINE I
   228 LETTRE MAJUSCULE LATINE C
   229 LETTRE MAJUSCULE LATINE O
   230 LETTRE MAJUSCULE LATINE L
   231 LETTRE MAJUSCULE LATINE O
   232 LETTRE MAJUSCULE LATINE N
   233 ESPACE 
   234 LETTRE MAJUSCULE LATINE A
   235 LETTRE MAJUSCULE LATINE M
   236 LETTRE MAJUSCULE LATINE P
   237 LETTRE MAJUSCULE LATINE E
   238 LETTRE MAJUSCULE LATINE R
   239 LETTRE MAJUSCULE LATINE S
   240 LETTRE MAJUSCULE LATINE A
   241 LETTRE MAJUSCULE LATINE N
   242 LETTRE MAJUSCULE LATINE D
   243 ESPACE 
   244 LETTRE MAJUSCULE LATINE L
   245 LETTRE MAJUSCULE LATINE E
   246 LETTRE MAJUSCULE LATINE S
   247 LETTRE MAJUSCULE LATINE S
   248 HYPHEN-MOINS 
   249 LETTRE MAJUSCULE LATINE T
   250 LETTRE MAJUSCULE LATINE H
   251 LETTRE MAJUSCULE LATINE A
   252 LETTRE MAJUSCULE LATINE N
   253 ESPACE 
   254 LETTRE MAJUSCULE LATINE Q
   255 LETTRE MAJUSCULE LATINE U
   256 LETTRE MAJUSCULE LATINE O
   257 LETTRE MAJUSCULE LATINE T
   258 LETTRE MAJUSCULE LATINE A
   259 LETTRE MAJUSCULE LATINE T
   260 LETTRE MAJUSCULE LATINE I
   261 LETTRE MAJUSCULE LATINE O
   262 LETTRE MAJUSCULE LATINE N
   263 ESPACE 
   264 LETTRE MAJUSCULE LATINE V
   265 LETTRE MAJUSCULE LATINE E
   266 LETTRE MAJUSCULE LATINE R
   267 LETTRE MAJUSCULE LATINE T
   268 LETTRE MAJUSCULE LATINE I
   269 ​​LETTRE MAJUSCULE LATINE C
   270 LETTRE MAJUSCULE LATINE A
   271 LETTRE MAJUSCULE LATINE L
   272 ESPACE 
   273 LETTRE MAJUSCULE LATINE Q
   274 LETTRE MAJUSCULE LATINE U
   275 LETTRE MAJUSCULE LATINE E
   276 LETTRE MAJUSCULE LATINE S
   277 LETTRE MAJUSCULE LATINE T
   278 LETTRE MAJUSCULE LATINE I
   279 LETTRE MAJUSCULE LATINE O
   280 LETTRE MAJUSCULE LATINE N
   281 ESPACE 
   282 LETTRE MAJUSCULE LATINE A
   283 LETTRE MAJUSCULE LATINE S
   284 LETTRE MAJUSCULE LATINE T
   285 LETTRE MAJUSCULE LATINE E
   286 LETTRE MAJUSCULE LATINE R
   287 LETTRE DE CAPITALE LATINE I
   288 LETTRE MAJUSCULE LATINE S
   289 LETTRE MAJUSCULE LATINE K
   290 ESPACE 
   291 LETTRE MAJUSCULE LATINE C
   292 LETTRE MAJUSCULE LATINE A
   293 LETTRE MAJUSCULE LATINE P
   294 LETTRE MAJUSCULE LATINE I
   295 LETTRE MAJUSCULE LATINE T
   296 LETTRE MAJUSCULE LATINE A
   297 LETTRE MAJUSCULE LATINE L
   298 ESPACE 
   299 LETTRE MAJUSCULE LATINE S
   300 LETTRE MAJUSCULE LATINE O
   301 LETTRE MAJUSCULE LATINE L
   302 LETTRE MAJUSCULE LATINE I
   303 LETTRE MAJUSCULE LATINE D
   304 LETTRE MAJUSCULE LATINE U
   305 LETTRE MAJUSCULE LATINE S
   306 ESPACE 
   307 LETTRE MAJUSCULE LATINE B
   308 LETTRE MAJUSCULE LATINE R
   309 LETTRE MAJUSCULE LATINE A
   310 LETTRE MAJUSCULE LATINE C
   311 LETTRE MAJUSCULE LATINE K
   312 LETTRE MAJUSCULE LATINE E
   313 LETTRE MAJUSCULE LATINE T
   314 ESPACE 
   315 LETTRE MAJUSCULE LATINE R
   316 LETTRE MAJUSCULE LATINE E
   317 LETTRE MAJUSCULE LATINE V
   318 LETTRE MAJUSCULE LATINE E
   319 LETTRE MAJUSCULE LATINE R
   320 LETTRE MAJUSCULE LATINE S
   321 LETTRE MAJUSCULE LATINE E
   322 ESPACE 
   323 LETTRE MAJUSCULE LATINE P
   324 LETTRE MAJUSCULE LATINE E
   325 LETTRE MAJUSCULE LATINE R
   326 LETTRE MAJUSCULE LATINE C
   327 LETTRE MAJUSCULE LATINE E
   328 LETTRE MAJUSCULE LATINE N
   329 LETTRE MAJUSCULE LATINE T
   330 ESPACE 
   331 LETTRE MAJUSCULE LATINE A
   332 LETTRE MAJUSCULE LATINE C
   333 LETTRE MAJUSCULE LATINE C
   334 LETTRE MAJUSCULE LATINE E
   335 LETTRE MAJUSCULE LATINE N
   336 LETTRE MAJUSCULE LATINE T
   337 ESPACE 
   338 LETTRE MAJUSCULE LATINE L
   339 LETTRE MAJUSCULE LATINE E
   340 LETTRE MAJUSCULE LATINE T
   341 LETTRE MAJUSCULE LATINE T
   342 LETTRE MAJUSCULE LATINE E
   343 LETTRE MAJUSCULE LATINE R
   344 ESPACE 
   345 LETTRE MAJUSCULE LATINE D
   346 LETTRE MAJUSCULE LATINE O
   347 LETTRE MAJUSCULE LATINE L
   348 LETTRE MAJUSCULE LATINE L
   349 LETTRE MAJUSCULE LATINE A
   350 LETTRE MAJUSCULE LATINE R
   351 ESPACE 
   352 LETTRE MAJUSCULE LATINE E
   353 LETTRE MAJUSCULE LATINE Q
   354 LETTRE MAJUSCULE LATINE U
   355 LETTRE MAJUSCULE LATINE A
   356 LETTRE MAJUSCULE LATINE L
   357 LETTRE MAJUSCULE LATINE S
   358 ESPACE 
   359 LETTRE MAJUSCULE LATINE S
   360 LETTRE MAJUSCULE LATINE Q
   361 LETTRE MAJUSCULE LATINE U
   362 LETTRE MAJUSCULE LATINE A
   363 LETTRE MAJUSCULE LATINE R
   364 LETTRE MAJUSCULE LATINE E
   365 ESPACE 
   366 LETTRE MAJUSCULE LATINE N
   367 LETTRE MAJUSCULE LATINE U
   368 LETTRE MAJUSCULE LATINE M
   369 LETTRE MAJUSCULE LATINE B
   370 LETTRE MAJUSCULE LATINE E
   371 LETTRE MAJUSCULE LATINE R
   372 ESPACE 
   373 LETTRE MAJUSCULE LATINE D
   374 LETTRE DE CAPITALE LATINE I
   375 LETTRE MAJUSCULE LATINE G
   376 LETTRE DE CAPITALE LATINE I
   377 LETTRE MAJUSCULE LATINE T
   378 ESPACE 
   379 LETTRE MAJUSCULE LATINE R
   380 LETTRE DE CAPITALE LATINE I
   381 LETTRE MAJUSCULE LATINE G
   382 LETTRE MAJUSCULE LATINE H
   383 LETTRE MAJUSCULE LATINE T
   384 ESPACE 
   385 LETTRE MAJUSCULE LATINE T
   386 LETTRE MAJUSCULE LATINE H
   387 LETTRE MAJUSCULE LATINE R
   388 LETTRE MAJUSCULE LATINE E
   389 LETTRE MAJUSCULE LATINE E
   390 ESPACE 
   391 LETTRE MAJUSCULE LATINE C
   392 LETTRE MAJUSCULE LATINE O
   393 LETTRE MAJUSCULE LATINE L
   394 LETTRE MAJUSCULE LATINE O
   395 LETTRE MAJUSCULE LATINE N
   396 ESPACE 
   397 LETTRE MAJUSCULE LATINE T
   398 LETTRE MAJUSCULE LATINE I
   399 LETTRE MAJUSCULE LATINE L
   400 LETTRE MAJUSCULE LATINE D
   401 LETTRE MAJUSCULE LATINE E
   402 ESPACE 
   403 LETTRE MAJUSCULE LATINE C
   404 LETTRE MAJUSCULE LATINE O
   405 LETTRE MAJUSCULE LATINE M
   406 LETTRE MAJUSCULE LATINE M
   407 LETTRE MAJUSCULE LATINE A
   408 ESPACE 
   409 LETTRE MAJUSCULE LATINE C
   410 LETTRE MAJUSCULE LATINE U
   411 LETTRE MAJUSCULE LATINE R
   412 LETTRE MAJUSCULE LATINE L
   413 LETTRE MAJUSCULE LATINE Y
   414 ESPACE 
   415 LETTRE MAJUSCULE LATINE S
   416 LETTRE MAJUSCULE LATINE P
   417 LETTRE MAJUSCULE LATINE A
   418 LETTRE MAJUSCULE LATINE C
   419 LETTRE MAJUSCULE LATINE E
   420 ESPACE 
   421 LETTRE MAJUSCULE LATINE S
   422 LETTRE MAJUSCULE LATINE M
   423 LETTRE MAJUSCULE LATINE A
   424 LETTRE MAJUSCULE LATINE L
   425 LETTRE MAJUSCULE LATINE L
   426 ESPACE 
   427 LETTRE MAJUSCULE LATINE S
   428 LETTRE MAJUSCULE LATINE E
   429 LETTRE MAJUSCULE LATINE V
   430 LETTRE MAJUSCULE LATINE E
   431 LETTRE MAJUSCULE LATINE N
   432 ESPACE 
   433 LETTRE MAJUSCULE LATINE E
   434 LETTRE DE CAPITALE LATINE I
   435 LETTRE MAJUSCULE LATINE G
   436 LETTRE MAJUSCULE LATINE H
   437 LETTRE MAJUSCULE LATINE T
   438 ESPACE 
   439 LETTRE MAJUSCULE LATINE G
   440 LETTRE MAJUSCULE LATINE R
   441 LETTRE MAJUSCULE LATINE A
   442 LETTRE MAJUSCULE LATINE V
   443 LETTRE MAJUSCULE LATINE E
   444 ESPACE 
   445 LETTRE MAJUSCULE LATINE L
   446 LETTRE MAJUSCULE LATINE A
   447 LETTRE MAJUSCULE LATINE T
   448 LETTRE MAJUSCULE LATINE I
   449 LETTRE MAJUSCULE LATINE N
   450 ESPACE 
   451 LETTRE MAJUSCULE LATINE N
   452 LETTRE MAJUSCULE LATINE I
   453 LETTRE MAJUSCULE LATINE N
   454 LETTRE MAJUSCULE LATINE E
   455 ESPACE 
   456 LETTRE MAJUSCULE LATINE F
   457 LETTRE MAJUSCULE LATINE O
   458 LETTRE MAJUSCULE LATINE U
   459 LETTRE MAJUSCULE LATINE R
   460 ESPACE 
   461 LETTRE MAJUSCULE LATINE P
   462 LETTRE MAJUSCULE LATINE L
   463 LETTRE MAJUSCULE LATINE U
   464 LETTRE MAJUSCULE LATINE S
   465 ESPACE 
   466 LETTRE MAJUSCULE LATINE F
   467 LETTRE DE CAPITALE LATINE I
   468 LETTRE MAJUSCULE LATINE V
   469 LETTRE MAJUSCULE LATINE E
   470 ESPACE 
   471 LETTRE MAJUSCULE LATINE L
   472 LETTRE DE CAPITALE LATINE I
   473 LETTRE MAJUSCULE LATINE N
   474 LETTRE MAJUSCULE LATINE E
   475 ESPACE 
   476 LETTRE MAJUSCULE LATINE L
   477 LETTRE MAJUSCULE LATINE E
   478 LETTRE MAJUSCULE LATINE F
   479 LETTRE MAJUSCULE LATINE T
   480 ESPACE 
   481 LETTRE MAJUSCULE LATINE S
   482 LETTRE MAJUSCULE LATINE T
   483 LETTRE MAJUSCULE LATINE O
   484 LETTRE MAJUSCULE LATINE P
   485 ESPACE 
   486 LETTRE MAJUSCULE LATINE M
   487 LETTRE MAJUSCULE LATINE A
   488 LETTRE MAJUSCULE LATINE R
   489 LETTRE MAJUSCULE LATINE K
   490 ESPACE 
   491 LETTRE MAJUSCULE LATINE F
   492 LETTRE MAJUSCULE LATINE U
   493 LETTRE MAJUSCULE LATINE L
   494 LETTRE MAJUSCULE LATINE L
   495 ESPACE 
   496 LETTRE MAJUSCULE LATINE S
   497 LETTRE DE CAPITALE LATINE I
   498 LETTRE MAJUSCULE LATINE G
   499 LETTRE MAJUSCULE LATINE N
   500 ESPACE 
   501 LETTRE MAJUSCULE LATINE Z
   502 LETTRE MAJUSCULE LATINE E
   503 LETTRE MAJUSCULE LATINE R
   504 LETTRE MAJUSCULE LATINE O
   505 ESPACE 
   506 LETTRE MAJUSCULE LATINE T
   507 LETTRE MAJUSCULE LATINE W
   508 LETTRE MAJUSCULE LATINE O
   509 ESPACE 
   510 LETTRE MAJUSCULE LATINE O
   511 LETTRE MAJUSCULE LATINE N
   512 LETTRE MAJUSCULE LATINE E
   513 ESPACE 
   514 LETTRE MAJUSCULE LATINE L
   515 LETTRE MAJUSCULE LATINE O
   516 LETTRE MAJUSCULE LATINE W
   517 ESPACE 
   518 LETTRE MAJUSCULE LATINE S
   519 LETTRE MAJUSCULE LATINE I
   520 LETTRE MAJUSCULE LATINE X
   521 ESPACE 
   522 LETTRE MAJUSCULE LATINE A
   523 LETTRE MAJUSCULE LATINE T
   524 Marque de cotation 
   525 COMMA 
   526 LETTRE MINUSCULE LATINE W
   527 PARENTHÈSE DE DROITE 
   528 SEMICOLON 
   529 LETTRE MINUSCULE LATINE Y
   530 SIGNAL ÉGAL 
   531 LETTRE MINUSCULE LATINE W
   532 SUPPORT CARRÉ GAUCHE 
   533 DIGIT DEUX 
   534 SUPPORT CARRÉ DROIT 
   535 SEMICOLON 
   536 LETTRE MINUSCULE LATINE F
   537 LETTRE MINUSCULE LATINE O
   538 LETTRE MINUSCULE LATINE R
   539 PARENTHÈSE À GAUCHE 
   540 LETTRE MINUSCULE LATINE X
   541 SIGNE ÉGAL 
   542 LETTRE MINUSCULE LATINE W
   543 SUPPORT CARRÉ GAUCHE 
   544 DIGIT ONE 
   545 SUPPORT CARRÉ DROIT 
   546 SEMICOLON 
   547 LETTRE MINUSCULE LATINE I
   548 PLUS SIGN 
   549 PLUS SIGN 
   550 SIGNE MOINS QUE 
   551 DIGIT DEUX 
   552 chiffres 
   553 SEMICOLON 
   554 lettre alphabetée laque X
   555 signe égal 
   556 LETTRE MINUSCULE LATINE X
   557 MARQUE DE COTATION 
   558 LETTRE MINUSCULE LATINE N
   559 LETTRE MAJUSCULE LATINE W
   560 SUPPORT CARRÉ DROIT 
   561 COMMA 
   562 MARQUE DE COTATION 
   563 PARENTHÈSE DE DROITE 
   564 LETTRE MINUSCULE LATINE Y
   565 signe égal 
   566 LETTRE MINUSCULE LATINE Y
   567 MARQUE DE COTATION 
   568 LETTRE MINUSCULE LATINE N
   569 LETTRE MINUSCULE LATINE J
   570 SUPPORT CARRÉ DROIT 
   571 COMMA 
   572 MARQUE DE COTATION 
   573 SEMICOLON 
   574 LETTRE MINUSCULE LATINE F
   575 LETTRE MINUSCULE LATINE O
   576 LETTRE MINUSCULE LATINE R
   577 PARENTHÈSE À GAUCHE 
   578 LETTRE MINUSCULE LATINE S
   579 LETTRE MINUSCULE LATINE P
   580 LETTRE MINUSCULE LATINE L
   581 LETTRE MINUSCULE LATINE I
   582 LETTRE MINUSCULE LATINE T
   583 PARENTHÈSE DE GAUCHE 
   584 LETTRE MINUSCULE LATINE X
   585 ESPACE 
   586 LETTRE MINUSCULE LATINE Y
   587 ESPACE 
   588 LETTRE MINUSCULE LATINE W
   589 SUPPORT CARRÉ GAUCHE 
   590 chiffres trois 
   591 SUPPORT CARRÉ DROIT 
   592 COMMA 
   593 LETTRE MINUSCULE LATINE B
   594 COMMA 
   595 MARQUE DE CITATION 
   596 COMMA 
   597 MARQUE DE COTATION 
   598 PARENTHÈSE DROITE 
   599 SEMICOLON 
   600 LETTRE MINUSCULE LATINE J
   SIGNE 601 PLUS 
   SIGNE 602 PLUS 
   603 signe inférieur 
   604 DIGIT ONE 
   605 DIGIT DEUX 
   606 chiffres 
   607 SEMICOLON 
   608 LETTRE MAJUSCULE LATINE F
   609 LETTRE MAJUSCULE LATINE S
   610 signe égal 
   611 BASSE LIGNE 
   612 PARENTHÈSE DE DROITE 
   613 LETTRE MINUSCULE LATINE D
   614 SUPPORT CARRÉ GAUCHE 
   615 LETTRE MINUSCULE LATINE S
   616 LETTRE MINUSCULE LATINE P
   617 LETTRE MINUSCULE LATINE R
   618 LETTRE MINUSCULE LATINE I
   619 LETTRE MINUSCULE LATINE N
   620 LETTRE MINUSCULE LATINE T
   621 LETTRE MINUSCULE LATINE F
   622 PARENTHÈSE À GAUCHE 
   623 Marque de cotation 
   624 pour cent signe 
   625 LETTRE MINUSCULE LATINE C
   626 MARQUE DE COTATION 
   627 COMMA 
   628 LETTRE MINUSCULE LATINE J
   629 PARENTHÈSE DE DROITE 
   630 SUPPORT CARRÉ DROIT 
   631 signe égal 
   632 LETTRE MINUSCULE LATINE J
   633 SUPPORT COURANT DROIT 
   634 SUPPORT COURBE GAUCHE 
   635 LETTRE MINUSCULE LATINE F
   636 LETTRE MINUSCULE LATINE O
   637 LETTRE MINUSCULE LATINE R
   638 PARENTHÈSE À GAUCHE 
   639 LETTRE MINUSCULE LATINE K
   640 signe égal 
   641 chiffres zéro 
   642 SEMICOLON 
   643 LETTRE MINUSCULE LATINE K
   Signe 644 PLUS 
   SIGNE 645 PLUS 
   646 SIGNE MOINS QUE 
   647 LETTRE MAJUSCULE LATINE N
   648 LETTRE MAJUSCULE LATINE F
   649 SEMICOLON 
   650 LETTRE MINUSCULE LATINE P
   651 LETTRE MINUSCULE LATINE R
   652 LETTRE MINUSCULE LATINE I
   653 LETTRE MINUSCULE LATINE N
   654 LETTRE MINUSCULE LATINE T
   655 ESPACE 
   656 LETTRE MINUSCULE LATINE I
   657 signe égal 
   658 BASSE LIGNE 
   659 PARENTHÈSE DROITE 
   660 LETTRE MINUSCULE LATINE W
   661 LETTRE MINUSCULE LATINE H
   662 LETTRE MINUSCULE LATINE I
   663 LETTRE MINUSCULE LATINE L
   664 LETTRE MINUSCULE LATINE E
   665 PARENTHÈSE DE GAUCHE 
   666 LETTRE MINUSCULE LATINE I
   667 PLUS SIGN 
   668 SIGNE PLUS 
   669 SIGNE MOINS THAN 
   670 LETTRE MINUSCULE LATINE S
   671 LETTRE MINUSCULE LATINE P
   672 LETTRE MINUSCULE LATINE L
   673 LETTRE MINUSCULE LATINE I
   674 LETTRE MINUSCULE LATINE T
   675 PARENTHÈSE DE GAUCHE 
   676 LETTRE MINUSCULE LATINE B
   677 SUPPORT CARRÉ GAUCHE 
   678 LETTRE MINUSCULE LATINE D
   679 SUPPORT CARRÉ GAUCHE 
   SIGNE DE 680 DOLLARS 
   681 LETTRE MINUSCULE LATINE K
   682 SUPPORT CARRÉ DROIT 
   683 HYPHEN-MOINS 
   684 chiffres trois 
   685 DIGIT ONE 
   686 SUPPORT CARRÉ DROIT 
   687 COMMA 
   688 LETTRE MINUSCULE LATINE Q
   689 PARENTHÈSE DE DROITE 
   690 PARENTHÈSE DROITE 
   691 LETTRE MINUSCULE LATINE P
   692 LETTRE MINUSCULE LATINE R
   693 LETTRE MINUSCULE LATINE I
   694 LETTRE MINUSCULE LATINE N
   695 LETTRE MINUSCULE LATINE T
   696 LETTRE MINUSCULE LATINE F
   697 PARENTHÈSE DE GAUCHE 
   698 LETTRE MINUSCULE LATINE Z
   699 signe égal 
   700 LETTRE MINUSCULE LATINE W
   701 SUPPORT CARRÉ GAUCHE 
   702 LETTRE MINUSCULE LATINE D
   703 SUPPORT CARRÉ GAUCHE 
   704 LETTRE MINUSCULE LATINE Q
   705 SUPPORT CARRÉ GAUCHE 
   706 LETTRE MINUSCULE LATINE I
   707 SUPPORT CARRÉ DROIT 
   708 SUPPORT CARRÉ DROIT 
   709 HYPHEN-MOINS 
   710 DIGIT SIX 
   711 DIGIT NINE 
   712 SUPPORT CARRÉ DROIT 
   713 PARENTHÈSE DE DROITE 
   714 MARQUE DE COTATION 
   715 ESPACE 
   716 MARQUE DE COTATION 
   717 PARENTHÈSE À GAUCHE 
   718 LETTRE MINUSCULE LATINE Z
   719 TILDE 
   720 SOLIDUS 
   721 LETTRE MAJUSCULE LATINE T
   722 LETTRE MAJUSCULE LATINE T
   723 SOLIDUS 
   724 QUESTION MARK 
   725 LETTRE MINUSCULE LATINE T
   726 LETTRE MINUSCULE LATINE O
   727 LETTRE MINUSCULE LATINE U
   728 LETTRE MINUSCULE LATINE P
   729 LETTRE MINUSCULE LATINE P
   730 LETTRE MINUSCULE LATINE E
   731 LETTRE MINUSCULE LATINE R
   732 PARENTHÈSE DE GAUCHE 
   SIGNE DE 733 DOLLARS 
   734 LETTRE MINUSCULE LATINE K
   735 PARENTHÈSE DROITE 
   736 COLON 
   737 BASSE LIGNE 
   738 PARENTHÈSE DE DROITE 
   739 SUPPORT COURANT DROIT

Je plaisante; D

BEGIN{split("i,Lv,Sv,ax,^x,[x,Q,O,tK,cK,V,qx,g,I,wu,X,by,b{,bz,bd,bp,br,b},bk,bl,bo,e,P,Rx,_x,Jx,Uv,M~, t`Y,ZX,c`Y,N\\,|s,m\\, thY,Ts,chY,f HYPHEN-MINUS GREATER-THAN PARENTHESIS EXCLAMATION COMMERCIAL CIRCUMFLEX APOSTROPHE SEMICOLON AMPERSAND LESS-THAN QUOTATION VERTICAL QUESTION ASTERISK CAPITAL SOLIDUS BRACKET REVERSE PERCENT ACCENT LETTER DOLLAR EQUALS SQUARE NUMBER DIGIT RIGHT THREE COLON TILDE COMMA CURLY SPACE SMALL SEVEN EIGHT GRAVE LATIN NINE FOUR PLUS FIVE LINE LEFT STOP MARK FULL SIGN ZERO TWO ONE LOW SIX AT",w);x=w[1];for(y=w[2];C++<26;x=x"nW],")y=y"nj],";for(split(x y w[3],b,",");j++<126;FS=_)d[sprintf("%c",j)]=j}{for(k=0;k++<NF;print i=_)while(i++<split(b[d[$k]-31],q))printf(z=w[d[q[i]]-69])" "(z~/TT/?toupper($k):_)}

Fonctionne avec stdin / stdout.

Plus "lisible":

BEGIN{

  # This string (508 bytes) holds a representation of the character names in 
  # the right order, plus a list of the used words.

    split("i,Lv,Sv,ax,^x,[x,Q,O,tK,cK,V,qx,g,I,wu,X,by,b{,bz,bd,bp,br,b},bk,bl,bo,
    e,P,Rx,_x,Jx,Uv,M~, t`Y,ZX,c`Y,N\\,|s,m\\, thY,Ts,chY,f HYPHEN-MINUS GREATER-T
    HAN PARENTHESIS EXCLAMATION COMMERCIAL CIRCUMFLEX APOSTROPHE SEMICOLON AMPERSA
    ND LESS-THAN QUOTATION VERTICAL QUESTION ASTERISK CAPITAL SOLIDUS BRACKET REVE
    RSE PERCENT ACCENT LETTER DOLLAR EQUALS SQUARE NUMBER DIGIT RIGHT THREE COLON
    TILDE COMMA CURLY SPACE SMALL SEVEN EIGHT GRAVE LATIN NINE FOUR PLUS FIVE LINE
     LEFT STOP MARK FULL SIGN ZERO TWO ONE LOW SIX AT",w);

  # Since the letters each appear 26 times I construct that part at runtime.
  # The array b will hold the coded combinations of which words need to
  # be printed for each input character.

    x=w[1];
    for(y=w[2];C++<26;x=x"nW],")
        y=y"nj],";

  # The array d is an ASCIICodeFromChar function replacement.
  # I set the field separator to empty, so each character of the input is
  # an input field. That's why using a BEGIN part was mandatory.

    for(split(x y w[3],b,",");j++<126;FS=_)
        d[sprintf("%c",j)]=j
}

  # Here I go through the element of b that matches the input and print
  # the requested words, using the input to produce a capital letter if
  # needed. I excluded these from the word list to save another 26 bytes

{
    for(k=0;k++<NF;print i=_)
        while(i++<split(b[d[$k]-31],q))
            printf(z=w[d[q[i]]-69])" "(z~/TT/?toupper($k):_)
}
Cabbie407
la source
5

C ++ 11, 739 octets

#include<iostream>
#define D,"DIGIT "
#define G" SIGN",
int main(){std::string a=" BRACKET",s="SQUARE"+a,c="CURLY"+a,t="TION MARK",p="PARENTHESIS",l="LEFT ",r="RIGHT ",x="LATIN ",y="L LETTER ",z[]{"SPACE","EXCLAMA"+t,"QUOTA"+t,"NUMBER"G"DOLLAR"G"PERCENT"G"AMPERSAND","APOSTROPHE",l+p,r+p,"ASTERISK","PLUS"G"COMMA","HYPHEN-MINUS","FULL STOP","SOLIDUS"D"ZERO"D"ONE"D"TWO"D"THREE"D"FOUR"D"FIVE"D"SIX"D"SEVEN"D"EIGHT"D"NINE","COLON","SEMICOLON","LESS-THAN"G"EQUALS"G"GREATER-THAN"G"QUES"+t,"COMMERCIAL AT",l+s,"REVERSE SOLIDUS",r+s,"CIRCUMFLEX ACCENT","LOW LINE","GRAVE ACCENT",l+c,"VERTICAL LINE",r+c,"TILDE"};getline(std::cin,s);for(char c:s)std::cout<<(c<65?z[c-32]:c<91?x+"CAPITA"+y+c:(c-=32,c<65?z[c-26]:c<91?x+"SMAL"+y+c:z[c-52]))+"\n";}

Basé sur la solution de sweerpotato, mais fortement modifiée.

CryptoBob
la source
Bien fait: ~)!
sweerpotato
5

C, 644 656

Programme complet, lecture de l'entrée standard

Test sur Ideone

Ceci est un portage de ma réponse JavaScript en C. Le langage C est bon pour manipuler des caractères uniques comme des nombres (pas besoin de .toUpperCase, etc.), mais il est plus faible dans la manipulation de chaînes.

char*s,*p,*q,b[999],*d=b+99,c,*l[129];
main(k){for(k=32,p="/SPACE/EXCLAMAaQUOTAaNUMBERbDOLLARbPERCENTbAMPERSAND/APOSTROPHEdcecASTERISK/PLUSbCOMMA/HYPHEN-MINUS/FULL STOP/hiZEROiONEiTWOiTHREEiFOURiFIVEiSIXiSEVENiEIGHTiNINE/gSEMIgLESSnbEQUALSbGREATERnbQUESaCOMMERCIAL ATdkfREVERSE h/ekfCIRCUMFLEXj/LOWmGRAVEjdlfVERTICALmelfTILDE/";
c=*p;p++)c>96?q?(p=q,q=0):(q=p,p=strchr("aTION MARK/b SIGN/cPARENTHESIS/d/LEFT eRIGHT f BRACKET/gCOLON/hSOLIDUSi/DIGIT j ACCENTkSQUARElCURLYm LINE/n-THANz",c)):c-47?*d++=c:(*d++=0,l[k++]=d);
for(;~(k=getchar());puts(k<65?l[k]:(k&31)<27?b:l[k<97?k-26:k-52]))sprintf(b,"LATIN %s LETTER %c",k<91?"CAPITAL":"SMALL",k&95);}

Moins golfé

char *all = "/SPACE/EXCLAMAaQUOTAaNUMBERbDOLLARbPERCENTbAMPERSAND/APOSTROPHEdcecASTERISK/PLUSbCOMMA/HYPHEN-MINUS/FULL STOP/hiZEROiONEiTWOiTHREEiFOURiFIVEiSIXiSEVENiEIGHTiNINE/gSEMIgLESSnbEQUALSbGREATERnbQUESaCOMMERCIAL ATdkfREVERSE h/ekfCIRCUMFLEXj/LOWmGRAVEjdlfVERTICALmelfTILDE/";
char *subs = "aTION MARK/b SIGN/cPARENTHESIS/d/LEFT eRIGHT f BRACKET/gCOLON/hSOLIDUSi/DIGIT j ACCENTkSQUARElCURLYm LINE/n-THANz";

main(int k)
{
    char c, *s, *p, *q=0, 
    b[999], // work buffer
    *d = b+99, // first part of buffer is used later
    *l[129]; // characters descriptions (used 32 to 126)

    // Uncompress the descriptions of all char except letters
    for(k = 32, p = all; c = *p; ++p)
    {
       c >= 'a' // substitution word are marked as lowercase letters
        ? q  
           ? (p = q, q = 0)
           : (q = p, p = strchr(subs, c))
        : c != '/'
           ? *d++ = c 
           : (*d++ = 0, l[k++] = d); // end char description
    }
    // Scan the input string and print each char description
    for(; (k=getchar()) != -1; )
    {
       sprintf(b,"LATIN %s LETTER %c", k<91 ? "CAPITAL":"SMALL", k & 95);
       puts( k<65 ? l[k] : k<91 ? b : k<97 ? l[k-26] : k<123 ? b : l[k-52]);
    }
}
edc65
la source
4

Common Lisp (SBCL), 52 79

(map()(lambda(y)(format t"~:@(~A~)~%"(substitute #\  #\_(char-name y))))(read))

Ceci est intégré et dépend de la mise en œuvre, vous pouvez donc l'ignorer lors du choix de la réponse acceptée. Ce n'est pas suffisant pour battre Python , malheureusement. La version mise à jour est conforme à la sortie attendue (je dois remplacer les traits de soulignement par des espaces).

Exemple

CL-USER> (map()(lambda(y)(format t"~:@(~A~)~%"(substitute #\  #\_(char-name y))))(read))
"(λ(r)(* 2 ᴨ r))"
LEFT PARENTHESIS
GREEK SMALL LETTER LAMDA
LEFT PARENTHESIS
LATIN SMALL LETTER R
RIGHT PARENTHESIS
LEFT PARENTHESIS
ASTERISK
SPACE
DIGIT TWO
SPACE
GREEK LETTER SMALL CAPITAL PI
SPACE
LATIN SMALL LETTER R
RIGHT PARENTHESIS
RIGHT PARENTHESIS
coredump
la source
4

Pyth, 41

$from unicodedata import name as neg$Vz_N

Utilise la même chose que la réponse python de mbomb007 . Notez que cela ne peut pas être exécuté en ligne car l' $opérateur est dangereux.

FryAmTheEggman
la source
4

C ++ 14, 1043 1000 998 996 972 octets

Solution grotesque en C ++ 14:

#include<iostream>
#include<map>
#define b cout
#define d string
#define e },{
using namespace std;char l='\n';d s[]{"DIGIT ","LATIN CAPITAL LETTER ","LATIN SMALL LETTER "};map<char, d> m{{' ',"SPACE"e'!',"EXCLAMATION MARK"e'\"',"QUOTATION MARK"e'#',"NUMBER SIGN"e'$',"DOLLAR SIGN"e'%',"PERCENT SIGN"e'&',"AMPERSAND"e'\'',"APOSTROPHE"e'(',"LEFT PARENTHESIS"e')',"RIGHT PARENTHESIS"e'*',"ASTERISK"e'+',"PLUS SIGN"e',',"COMMA"e'-',"HYPHEN-MINUS"e'.',"FULL STOP"e'/',"SOLIDUS"e':',"COLON"e';',"SEMICOLON"e'<',"LESS-THAN SIGN"e'=',"EQUALS SIGN"e'>',"GREATER-THAN SIGN"e'?',"QUESTION MARK"e'@',"COMMERCIAL AT"e'[',"LEFT SQUARE BRACKET"e'\\',"REVERSE SOLIDUS"e']',"RIGHT SQUARE BRACKET"e'^',"CIRCUMFLEX ACCENT"e'_',"LOW LINE"e'`',"GRAVE ACCENT"e'{',"LEFT CURLY BRACKET"e'|',"VERTICAL LINE"e'}',"RIGHT CURLY BRACKET"e'~',"TILDE"}};int main(){d str;getline(cin,str);for(char c:str){islower(c)?b<<s[2]<<(char)(c-32):isupper(c)?b<<s[1]<<c:isdigit(c)?b<<*s<<c:b<<m.at(c);b<<l;}}

Merci à kirbyfan64sos pour avoir joué deux octets au golf

pomme de terre
la source
Pouvez-vous faire *sau lieu de s[0]?
Kirbyfan64sos
Bien sûr peut! Totalement manqué que
sweerpotato
3

CJam, 517

l{i32-["SPACE""EXCLAMA""TION MARK":T+"QUOTA"T+"NUMBER DOLLAR PERCENT"{S/" SIGN"am*~}:H~"AMPERSAND""APOSTROPHE""LEFT PARENTHESIS":L"RIGHT ":R1$5>+"ASTERISK""PLUS"H"COMMA""HYPHEN-MINUS""FULL STOP""SOLIDUS":D"DIGIT "a"ZERO ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE"S/m*~"COLON""SEMI"1$+"LESS-THAN EQUALS GREATER-THAN"H"QUES"T+"COMMERCIAL AT""CAPITA"{["LATIN "\"L LETTER "]a'[,65>m*~L5<}:Z~"SQUARE BRACKET":Q+"REVERSE "D+RQ+"CIRCUMFLEX ACCENT""LOW LINE""GRAVE"2$A>+"SMAL"Z"CURLY"33$B>+:C+"VERTICAL LINE"RC+"TILDE"]=N}/

Version en ligne

J'ai essayé différentes solutions, mais le simple fait de stocker tous les noms dans un grand nombre semble le plus efficace.

Ceci est mon premier vrai programme CJam en passant.

CryptoBob
la source
3

C ++ 14 716 706 704

#include<iostream>
char*q,x,b[584],*t=b,a[]=R"(space}exclamation|mark}quot"-number|sign}dolla!apercent!mam"%sand}apostrophe}left|par%3hesis}righ"Wasterisk}plus*<comma}hy)#n{minus}full|stop}solid"Ldigit|zero!Tone!Gtw"kthre#&four!Uiv#&six!Heve>^!_e6r!ani,1colon}semi!Fless{than8Eequal:$grea<s$2quesMj>EJoial|at}lQ9n|capit"?let('|Jes+\re|bracket}r5urse|C5M?%2circumflex|acXR}low|l:bgrave#'0=smaNy0+curly*s/Ytic4z)$/\$itilde)",*s=a;int c,z,l='{';int main(){for(;x=*s++;)if(z=x-32,x>96)*t++=x<l?z:"- "[x%l];else for(c=z*95+*s++-32,q=t-c/13,x=3+c%13;x--;)*t++=*q++;while(std::cin.get(x)){for(s=b,z=0,c=x<65?x-32:x<91?z=33:x<97?x-57:x<l?z=40:x-82;c--;)while(*s++);auto&o=std::cout<<s;(z?o.put(x&~32):o)<<"\n";}}

Version en direct .

Avec quelques espaces:

#include <iostream>

// a is compressed using an LZ like compression scheme
char *q, x, b[584],
    *t = b,
    a[] =
        R"(space}exclamation|mark}quot"-number|sign}dolla!apercent!mam"%sand}apostrophe}left|par%3hesis}righ"Wasterisk}plus*<comma}hy)#n{minus}full|stop}solid"Ldigit|zero!Tone!Gtw"kthre#&four!Uiv#&six!Heve>^!_e6r!ani,1colon}semi!Fless{than8Eequal:$grea<s$2quesMj>EJoial|at}lQ9n|capit"?let('|Jes+\re|bracket}r5urse|C5M?%2circumflex|acXR}low|l:bgrave#'0=smaNy0+curly*s/Ytic4z)$/\$itilde)",
    *s = a;

int c, z, l = '{';

int main() {
    // Decompress from a into b
    for (; x = *s++;)
        if (z = x - 32, x > 96)
            *t++ = x < l ? z : "- "[x % l];
        else
            for (c = z * 95 + *s++ - 32, q = t - c / 13, x = 3 + c % 13; x--;) *t++ = *q++;

    // Process input a char at a time, performing a lookup into b for the c'th null separated string
    while (std::cin.get(x)) {
        for (s = b, z = 0,
            c = x < 65 ? x - 32 : x < 91 ? z = 33 : x < 97 ? x - 57 : x < l ? z = 40 : x - 82;
             c--;)
            while (*s++)
                ;
        auto& o = std::cout << s;
        (z ? o.put(x & ~32) : o) << "\n";
    }
}

La chaîne compressée adécompresse en:

espace} exclamation | mark} citation | mark} numéro | signe} dollar | signe} pour cent | signe} esperluette} apostrophe} left | parenthèse} droite | parenthèse} astérisque} plus | solidus} digit | zéro} digit | un} digit | deux} digit | trois} digit | quatre} digit | cinq} digit | six} digit | sept} digit | huit} digit | neuf} colon}} point-virgule} moins {que | signe} est égal à | signe} supérieur {à | signe} question | mark} commercial | at} latin | capitale | lettre |} gauche | carré | crochet} reverse | solidus} droit | carré | crochet} accent circonflexe} bas | ligne } grave | accent} latin | petite | lettre |} gauche | curly | parenthèse} vertical | ligne} droite | curly | parenthèse} tilde

Et pendant la décompression }est remplacé par \0, |avec (espace) et {avec -et minuscules sont converties en majuscules.

La chaîne est compressée dans le style LZ sous la forme d'un littéral [a-~]ou d'un décalage / longueur codé par deux caractères afin de correspondre à une correspondance antérieure dans la chaîne.

mattnewport
la source
3

Clojure, 56 octets

(doseq[c(read-line)](println(Character/getName(int c))))

Inspiré par la réponse de @ peter. Utilise Clojure pour l'interopérabilité Java.

milles
la source
3

Perl - 894 octets

Soigneusement conçu à la main. Première fois à Perl, tous les conseils sont appréciés.

$_=$ARGV[0];s/(.)/$1\n/g;s/([A-Z])/& CAPITAL' $1/g;s/([a-z])/& SMALL' \U$1/g;s/,/COMMA/g;s/& /LATIN /g;s/' / LETT, /g;s/&/AMP,SAND/g;s/'/APOSTROPHE/g;s/ \n/SPACE\n/g;s/\*/AST,ISK/g;s/-/HYPHEN-MINUS/g;s/\./FULL STOP/g;s/@/COMM,CIAL AT/g;s/~/TILDE/g;s/:/&/g;s/;/SEMI&/g;s/&/COLON/g;s/\|/V,TICAL&/g;s/_/LOW&/g;s/&/ LINE/g;s/\^/CIRCUMFLEX&/g;s/`/GRAVE&/g;s/&/ ACCENT/g;s/\//&/g;s/\\/REV,SE &/g;s/&/SOLIDUS/g;s/!/!&/g;s/"/"&/g;s/\?/?&/g;s/!/EXCLAMA/g;s/"/QUOTA/g;s/\?/QUES/g;s/&/TION MARK/g;s/#/NUMB,&/g;s/\$/DOLLAR&/g;s/%/P,CENT&/g;s/\+/PLUS&/g;s/</LESS-THAN&/g;s/=/EQUALS&/g;s/>/GREAT,-THAN&/g;s/&/ SIGN/g;s/\(/<&/g;s/\)/>&/g;s/&/ PARENTHESIS/g;s/\[/<&/g;s/\]/>&/g;s/&/ SQUARE'/g;s/{/<&/g;s/}/>&/g;s/&/ CURLY'/g;s/'/ BRACKET/g;s/</LEFT/g;s/>/RIGHT/g;s/0/&Z,O/g;s/1/&ONE/g;s/2/&TWO/g;s/3/&THREE/g;s/4/&FOUR/g;s/5/&FIVE/g;s/6/&SIX/g;s/7/&SEVEN/g;s/8/&EIGHT/g;s/9/&NINE/g;s/&/DIGIT /g;s/,/ER/g;print;
Luke
la source
1

Facteur, 58 octets

[ readln [ char>name "-"" " replace >upper print ] each ] 

Assez simple; fait exactement la même chose que Java et Perl 6 réponses.

chat
la source
0

PHP> = 7, 54 octets non compétents

for(;a&$c=$argn[$i++];)echo"
".IntlChar::charName($c);

IntlChar :: charName

Jörg Hülsermann
la source