Quelle est la gamme de caractères imprimables Unicode?
4 réponses
voir, http://en.wikipedia.org/wiki/Unicode_control_characters
vous pourriez vouloir regarder en particulier le caractère de contrôle C0 et C1 http://en.wikipedia.org/wiki/C0_and_C1_control_codes
dit le wiki, le caractère de contrôle C0 est dans la gamme U+0000-U+001F et U+007F (qui est la même gamme que ASCII) et le caractère de contrôle C1 est dans la gamme U+0080-U+009F
outre le caractère c-control, Unicode dispose également de centaines de caractères de contrôle de formatage, par exemple zero-width non-joiner, ce qui rend l'espacement des caractères plus proche, ou le contrôle de texte bidirectionnel. Ces caractères de contrôle de formatage sont plutôt dispersés.
plus important encore, qu'est-ce que vous faites qui vous oblige à connaître les caractères non imprimables D'Unicode? Plus que probable que ce que vous essayez de faire est la bonne approche pour résoudre votre problème.
tout d'abord, vous devez supprimer le mot 'UTF8' dans votre question, il n'est pas pertinent (UTF8 est juste un des codages D'Unicode, c'est quelque chose d'orthogonal à votre question).
Deuxièmement: le sens de "imprimable/non imprimable" est moins claire dans Unicode. Peut-être voulez-vous dire un " caractère graphique " ; et on peut même contester si un espace est imprimable/graphique. Les caractères non graphiques seraient essentiellement constitués de caractères de contrôle: plage 0x00-0x0f plus quelques autres qui sont dispersés.
quoi qu'il en soit, la grande majorité des caractères Unicode (plus de 200.000) sont "Graphiques". Mais cela ne signifie certainement pas qu'ils sont imprimables dans votre environnement.
Il me semble une mauvaise idée, si vous avez l'intention de générer un "hasard imprimable" chaîne unicode, d'essayer d'inclure tous les "imprimer" des personnages.
Ce que vous devez faire est de choisir une police, puis de générer une liste des caractères Unicode ont glyphes défini pour votre police. Vous pouvez utiliser une bibliothèque de caractères comme freetype pour tester glyphs (test for FT_Get_Char_Index(...) != 0).
Unicode , terme autocollant, n'a pas de portée. Les nombres peuvent aller infini.
ce que vous avez donné N'est pas UTF8 qui a 1 octet pour les caractères ASCII.
quant à la gamme, je crois qu'il n'y a pas de gamme de caractères imprimables. Elle ne cesse d'évoluer. Regardez la page que j'ai donnée ci-dessus.