2008-11-03 6 views
3

Avant que quelqu'un ne me recommande de faire une recherche google sur ce sujet, j'ai. J'ai juste besoin d'un peu plus de clarté sur ce que les pages de codes et les encodages. Si j'utilise l'encodage UTF8 et que j'utilise une page de code en italien puis une page de code en français, est-ce que cela signifie que les caractères seront différents même si les octets n'ont pas changé?Codepages et encodages

Répondre

8

Joel a un bon résumé de ce:
http://www.joelonsoftware.com/articles/Unicode.html

Et non. Si je comprends bien votre question, cela ne veut pas dire cela. Lorsque vous convertissez UTF-8 à une page de codes spécifique, il est possible que seuls certains des caractères vont être convertis. Ce qui arrive à ceux qui ne sont pas convertis dépend de la façon dont vous appelez la conversion. Un résultat possible est que les caractères qui n'ont pas pu être mappés à la page de codes seraient convertis en caractères de point d'interrogation.

5

Un codage est simplement un mappage entre des valeurs numériques et des "caractères". US-ASCII mappe le nombre 65 à la lettre A, 32 à un espace et 49 au chiffre "1". (Comment ces choses sont rendues est une autre affaire.) En fait, UTF-8 fait la même chose! Mais il existe d'autres valeurs que UTF-8 traite différemment de l'ASCII. C'est un codage à longueur variable, c'est-à-dire qu'un caractère peut être codé avec 1, 2, 3 ou 4 octets; les caractères communs consomment généralement moins d'octets.

Les fichiers texte, y compris les pages Web, sont stockés et transmis sous la forme de séquences d'octets. Ces octets sont censés représenter quelque chose de textuel. Les applications logicielles (comme les éditeurs de texte et les navigateurs Web) sont chargées de déchiffrer les informations contenues dans ces fichiers à l'écran. Habituellement, ils utilisent des fonctions de bibliothèque ou de système d'exploitation.

Si le logiciel suppose un codage différent du logiciel qui a créé le fichier, les mauvais caractères peuvent s'afficher!

Notez qu'il est possible de convertir entre différents codages; Cependant, si vous convertissez en un encodage qui ne contient pas un certain caractère, le logiciel doit faire un choix quant à ce qu'il doit utiliser à la place. Cette conversion se produit souvent de manière transparente (lorsque vous enregistrez un fichier avec un certain encodage, tout ce que vous avez tapé doit être changé en ce codage).

0

UTF-8 inclut tous les caractères de votre page de codes en français et en italien, mais les pages de codes spécifiques aux langues n'incluent pas tous les autres caractères.

Ainsi, vous pouvez prendre des entrées de chaque langue et les convertir en UTF-8 pour le stockage, mais vous ne pouvez pas être certain que vous obtiendrez les bons caractères si vous prenez l'italien et le montrez comme français.

Utilisez UTF-8 tout le chemin si vous le pouvez.

+0

Pourquoi cela a-t-il été réduit? La question n'a pas été formulée très clairement, mais cette réponse me semble correcte. –

Questions connexes