Quelle est la différence entre UTF-8 y ISO-8859-1 ?
Oups ! Je pensais l'avoir écrit, mais je l'ai perdu dans une réécriture. Je l'ai mis maintenant.
Quelle est la différence entre UTF-8 y ISO-8859-1 ?
Une autre chose importante à savoir : si vous voyez iso-8859-1
il s'agit probablement de Windows-1252 plutôt que ISO/IEC 8859-1 . Ils diffèrent dans la plage 0x80-0x9F, où l'ISO 8859-1 a les codes de contrôle C1, et Windows-1252 a des caractères visibles utiles à la place.
Par exemple, l'ISO 8859-1 a 0x85 comme caractère de contrôle (en Unicode, U+0085, ``), alors que Windows-1252 a une ellipse horizontale (en Unicode, U+2026 HORIZONTAL ELLIPSIS, …
).
El Spécification d'encodage WHATWG (tel qu'utilisé par HTML) déclare expressément iso-8859-1
pour être un label pour windows-1252
La norme HTML stipule que tous les codages de la spécification d'encodage doivent être pris en charge, et pas plus.
Il est également intéressant de noter que les références aux caractères numériques du HTML utilisent essentiellement Windows-1252 pour les valeurs 8 bits plutôt que les points de code Unicode. https://html.spec.whatwg.org/#numeric-character-reference-end-state , …
produira U+2026 plutôt que U+0085.
La raison pour laquelle j'ai cherché à répondre à cette question était de savoir en quoi ils sont compatibles. Le jeu de caractères Latin1 (iso-8859) est 100% compatible pour être stocké dans un datastore utf8. Tous les caractères ascii et extended-ascii seront stockés sur un seul octet.
Dans l'autre sens, le passage de utf8 à Latin1 charset peut fonctionner ou non. S'il y a des caractères de 2 octets (caractères au-delà de l'ascii étendu 255), ils ne seront pas stockés dans un datastore Latin1.
Latin-1, ou iso-8859-1 n'est pas 100% compatible pour être stocké en utf8. Tout caractère Latin-n ou iso-8859-n supérieur à 127 ne sera pas traduit en un caractère utf-8 d'un seul octet. Cependant, pour les valeurs 1-127, ils seront traduits exactement.
Cette réponse est un peu confuse dans son utilisation du terme "ascii étendu", qui est juste un terme pour faire référence à tout codage de caractères qui n'est pas ASCII. UTF-8 et latin-1 sont des exemples de codages ASCII étendus. Mais les caractères latin-1 non ASCII (c'est-à-dire les points de code supérieurs à 127) ne peuvent pas être codés sur un seul octet en UTF-8.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.