11
votes

Pourquoi UTF8 est compatible avec ASCII

A in utf-8 est U + 0041 lettre majuscule latine A . A en ASCII est 065 .

Comment UTF-8 est-il compatible avec ASCII?


2 commentaires

Tout fichier texte codé en ASCII peut être décodé comme UTF-8 pour obtenir exactement le même résultat.


Vous comparez décimale et hexagone. 65 déc. = 41 hex. UTF-8 est presque toujours listé dans Hex.


3 Réponses :


26
votes

ASCII utilise uniquement les 7 premiers bits d'un octet 8 bits. Donc, toutes les combinaisons de 00000000 à 01111111 . Tous les 128 octets de cette gamme sont mappés sur un caractère spécifique.

utf-8 conserver ces mappages exacts. Le caractère représenté par 01101011 dans ASCII est également représenté par le même octet dans UTF-8. Tous les autres caractères sont codés dans des séquences de plusieurs octets dans lesquels chaque octet a le bit le plus élevé. I.e. Chaque octet de tous les caractères non-ASCII dans UTF-8 est de la forme 1xxxxxxx .


2 commentaires

Pouvez-vous expliquer ce qui se passe si l'application qui ne prend en charge que le fichier ASCII Lire le fichier UTF8. Plus précisément, ce qu'il suppose de faire quand il a lu le premier octet de 0041 (hexadécimal).


Que signifie "0041"? Le personnage Unicode U + 0041? La séquence d'octets 0x00 0x41 ? Si le premier, c'est ce dernier "A", qui codé dans UTF-8 est le même que dans ASCII , donc aucun problème du tout. Si ce dernier, ce serait un octet nul suivi de "A", qui est identique à ASCII que dans UTF-8. Je pense que vous n'avez pas encore eu le problème, je vous suggérerais de lire quel type de programmeur a besoin de manière positive à savoir Sur les codages et les ensembles de caractères pour travailler avec du texte .



5
votes

pourquoi:

Parce que tout était déjà en ASCII et que le format Unicode compatible à l'envers a fait une adoption beaucoup plus facile. Il est beaucoup plus facile de convertir un programme pour utiliser UTF-8 que celui de UTF-16 et ce programme hérite de la nature compatible à l'envers en travaillant toujours avec ASCII.

Comment:

ASCII est un codage 7 bits, mais est toujours stocké en octets, qui sont 8 bits. Cela signifie que 1 bit a toujours été inutilisé.

utf-8 utilise simplement ce bit supplémentaire pour signifier des caractères non-ASCII.


0 commentaires

7
votes

Unicode est en retard compatible avec ASCII, car ASCII est un sous-ensemble de Unicode. Unicode utilise simplement tous les codes de caractères en ASCII et ajoute plus.

Bien que les codes de caractères soient généralement écrits comme 0041 dans Unicode, les codes de caractères sont numériques de sorte que 0041 est la même valeur que (hexadécimale) 41.

utf-8 n'est pas un jeu de caractères mais un encodage utilisé avec Unicode. Il est également compatible avec ASCII aussi, car les codes utilisés pour plusieurs codages d'octets se trouvent dans la partie du jeu de caractères ASCII inutilisé.

Notez que ce n'est que le jeu de caractères ASCII 7 bits compatible avec Unicode et UTF-8, les ensembles de caractères 8 bits basés sur ASCII, tels que IBM850 et Windows-1250, utilisent la partie du jeu de caractères où UTF -8 a des codes pour plusieurs codages d'octets.


1 commentaires

"Notez que ce n'est que le jeu de caractères ASCII 7 bits compatible avec Unicode et UTF-8": vous devez supprimer la mention sur Unicode, ou vous devez définir ce que "compatible" signifie dans ce contexte.