La version actuelle de l'UTF-16 est capable de coder 1 112 064 numéros différents (points de code); Le consortium Unicode a-t-il l'intention de faire fonctionner UTF-16 à court de caractères? p>
I.e. Faire un point de code> Sinon, pourquoi quiconque écrirait-il le code d'un analyseur UTF-8 pour pouvoir accepter 5 ou 6 séquences d'octets? Puisqu'il ajouterait des instructions inutiles à leur fonction. P>
n'est pas 1,112 064 suffisamment, avons-nous besoin de plus de caractères? Je veux dire: à quelle vitesse sommes-nous à court? P> 0x0-0x10ffff code>. p>
0x10ffff code> p>
4 Réponses :
À l'heure actuelle, la norme UNICODE ne définit aucun caractère au-dessus de U + 10FFFF. Vous seriez donc bien pour coder votre application pour rejeter les caractères ci-dessus. p>
Prédire l'avenir est difficile, mais je pense que vous êtes en sécurité pour le terme proche de cette stratégie. Honnêtement, même si Unicode s'étend au-dessus de U + 10ffff dans l'avenir lointain, il ne sera certainement pas certainement pour les glyphes critiques. Votre application pourrait ne pas être compatible avec les nouvelles polices Ferengi qui sortent en 2063, mais vous pouvez toujours le réparer lorsqu'il devient en réalité un problème. P>
Je ne sais pas les buffs de la vedette Star pourrait devenir fou ?? Mais n'aurions-nous pas encore de place avec ça? Je pense que 1,112 064 est beaucoup de fichus personnages, je suis habitué à l'anglais et à l'ASCII et à tous les symboles de mathématiques et symboles grecs que je peux penser que nous n'avons que 512.
Bien sûr, mais le japonais de base au niveau de l'école secondaire compte plusieurs milliers. Chinois, plus encore. Certaines langues ont juste plus de glyphes que d'autres. Néanmoins, je conviens que un million de glyphes devraient étendre un long chemin.
Je conviens également qu'un million de glyphes devraient étendre un long chemin.
@Glassghost: Bien sûr et 640 kilo-octets de mémoire suffisent pour n'importe qui.
Pour être juste, les langues humaines ne sont pas affectées par la loi de Moore - et de remercier la bonté pour cela !!
@KeithThompson 640 kilo-octets est assez de mémoire pour direct x 11. Ensuite, nous manquerons de caractères avant de rencontrer une espèce exotique.
Il n'y a aucune raison d'écrire un analyseur UTF-8 qui prend en charge 5 à 6 séquences d'octets, à l'exception du soutien de tout système hérité qui les utilisait. La spécification actuelle Offical UTF-8 ne prend pas en charge 5 à 6 séquences d'octets afin d'accueillir 100% des conversions sans perte de perte vers / de UTF-16. S'il y a toujours un temps que Unicode doit prendre en charge de nouveaux codes de codépoints ci-dessus U + 10FFFF CODE>, il y aura suffisamment de temps pour concevoir de nouveaux formats de codage pour les comptes de bits plus élevés. Ou peut-être au moment où cela se produit, la mémoire et le pouvoir concomidifient suffisent suffisamment pour que tout le monde passe simplement à UTF-32 pour tout, ce qui peut gérer jusqu'à
u + fffffff code> pour plus de 4 milliards de caractères. < / p>
Ce n'est pas vraiment vrai. Il existe des systèmes qui utilisent une version modifiée de l'algorithme UTF-8 pour permettre des points de code non unicode jusqu'à 2⁷²-1. Tant que les processus de coopération ne prétendent pas que ces soi-disant «hypers» sont des points de code Unicode réels ou que ce codage est identique à UTF-8 (bien qu'il soit en grande partie), il n'y a rien dans la norme qui les interdit. Et si vous ne pouvez pas penser à rien de créatif, intéressant et utile à faire avec 51 bits supplémentaires d'espace de noms pour des personnages, je connais certainement des personnes qui le peuvent. Et non, ces personnes ne donnent pas de maman sassy de rat à propos de UTF-16. Qui serait?
Si un système utilise un codage UTF-8 de type pour des valeurs non unicode, il n'est pas vraiment utf-8, il ne s'agit que d'un codage personnalisé inspiré par UTF-8. La question de l'OP était spécifiquement sur la standard UTF-8 et UNICODE, et dans ce cas ce que j'ai écrit dans ma réponse s'applique.
A partir de 2011 Nous avons consommé 109 449 caractères et mis de côté pour une utilisation d'une application (6 400+ 131.068) : p>
quitter la salle de plus de 860 000 caractères inutilisés; Beaucoup pour EXTENSION CJK E (~ 10 000 caractères) et 85 Ensemble de plus comme elle; Donc, en cas de contact avec le Ferengi Culture , nous devrions être prêts. P >
En novembre 2003, le IETF restreint UTF-8 pour finir à U + 10FFFF avec < un href = "https://www.rfc-editor.org/rfc/rfc3629#page-3" rel = "nfollow Noreferrer"> RFC 3629 , afin de correspondre aux contraintes du caractère UTF-16 Encodage: un analyseur UTF-8 ne doit pas accepter 5 ou 6 séquences d'octets qui déborde de l'ensemble UTF-16 ou des caractères de la séquence de 4 octets supérieure à celle du code> 0x10ffff de code> p> P>
Veuillez mettre les édition d'ensembles d'inscriptions qui posent des menaces sur la taille de la limite de point de code Unicode ici si elles sont supérieures à 1/3 de la taille du Extension CJK E (~ 10 000 caractères): P>
+1 pour Ferengi (et être le plus descriptif)
Couper à la chasse: p>
Il est effectivement intentionnel que le système de codage ne prend en charge que les points de code jusqu'à U + 10FFFF P>
Il n'apparaît pas qu'il y ait un risque réel de manquer de temps bientôt. P>
C'est 10ffff pas "10fff" et la réponse déjà acceptée; implique tout ce qui précède.
J'ai manifesté, évidemment. En outre, l'autre réponse n'a pas encore été acceptée lorsque je l'ai posté.
En fait, il a été accepté, comme une semaine entière avant de l'avoir posté, oscillez votre souris sur la coche acceptée si vous ne me croyez pas.
Mon erreur. Pour une raison quelconque, cela est apparu comme une nouvelle question et j'ai fait une mauvaise hypothèse.
J'arrive à connaître un
utf8-lâche code> analyseur acceptant les points de code de 13 octets. Ce n'est pas insouciant. Évidemment, ce processus ne donne pas de péter à propos de UTF-16, qui est un héritage très malheureux que nous aimerions tous oublier puisqu'il intègre les pires inconvénients de l'UTF-8 et de l'UTF-32 sans profiter des avantages de l'un ou l'autre : UTF-16 est vraiment le pire des deux mondes. Mais ne faites pas de mal à la hausse: tout analyseur UTF-8 strict doit i> b> Rejeter code pointe sur 4 octets de longueur codée. C'est pour embrasser le sucré de UTF-16, vous savez quoi.
Réveillez-moi quand ils découvrent une nouvelle civilisation avec un système d'écriture non alphabétique.
@Hanspassant Le temps de réveiller b> Les alphabets ne sont que l'une des formes de l'écriture humaine. Il y a aussi des syllabaires et des logogrammes. Bazillions de logogrammes. L'extension CJK E est presque prête et compte 6 000 nouveaux personnages - et non l'un d'entre eux n'a rien à voir avec un "alphabet".
En fait, il ne serait même pas impossible d'étendre l'UTF-16 de la même manière que cela a été dérivé de UCS-2: en mettant de côté une gamme de points de code à l'extérieur du BMP en tant que "substituts prolongés", une séquence pouvant alors coder les points de code en dehors de l'espace de codes actuel. FWIW, même au taux actuel, l'espace de codes pourrait être suffisant pour les prochaines décennies.
@Tchrist Il y a beaucoup de héritages malheureux que nous aimerions oublier, mais aussi longtemps que UTF-16 est utilisé dans Windows et Java, c'est une réalité que beaucoup de gens doivent reconnaître. Même si vous travaillez dans un environnement puissant UTF-8, vous devrez traiter des programmes construits pour une compatibilité réelle mondiale. Manggle Encodant tout ce que vous voulez dans votre boîte, mais à l'extérieur de cette boîte, Standard UTF-8 est le seul UTF-8 que tout le monde devrait voir.
@prosfilaes et @Tchrist logo-grammes ne devraient pas être dignes de statut de caractère; Je pouvais comprendre ajouter des nouveaux personnages de mathématiques ou un nouveau symbole de sécurité / de devise, mais une autre version d'un visage de smiley valant la peine d'être ajoutée à chaque bibliothèque de polices? Comme si vous ne pouviez pas utiliser le code de code spécifique de l'application déjà? Quant à moi, ill juste coller avec "
;) code>". Faites simplement un fichier SVG et imbécile avec une balise code> img code>.
@Glassghost de logogrammes Tchrist signifiait les caractères chinois. Je ne crois pas que quiconque soutient tous les personnages Unicode; Si vous faites une police, n'hésitez pas à exclure les personnages que vous voulez. Par pure comptage, quelques centaines d'emoji qui étaient nouveaux à Unicode ne sont-ils pas si majeurs, surtout par rapport aux dizaines de milliers de caractères chinois codés.
@PROSFILAES Je sais que vous pouvez exclure, le but est que certains caractères ne doivent pas être ajoutés à la norme. En outre, je suppose que les gens veulent dire ce qu'ils disent.
@Glassghost il a dit ce que cela signifiait; Par exemple, le dictionnaire encyclopédique d'archéologie dit "Systèmes d'écriture qui utilisent des logogrammes incluent des systèmes d'écriture hiéroglyphiques chinoise, égyptienne et d'écriture cunéiforme précoce."