web-dev-qa-db-fra.com

ANSI au format UTF-8 dans Notepad ++

J'ai un texte encodé en ANSI:

ANSI text file

Lorsque j'ai essayé de le convertir en UTF-8 (à l'aide du menu Encodage du Notepad ++>> UTF-8), j'ai des caractères étranges:

UTF-8 text file

Je pensais qu'UTF-8 était un sur-ensemble d'ANSI et que, par la suite, je n'aurais plus de tels problèmes. Y a-t-il un moyen d'éviter l'apparition de ces personnages étranges?

24
user3658425

UTF-8 est pas un jeu de caractères, juste un encodage pour Unicode. Les 128 premiers caractères sont identiques à ASCII mais diffèrent par les 128 octets de poids fort. Un octet dont le bit fort est défini (ou> = 0x80) est un caractère étendu dans ASCII, tandis que dans UTF-8, il indique l'octet de début d'une séquence multi-octets. C'est le cas de 0x93 ou 0x94 ci-dessus. Cependant, je ne vois rien d'étrange dans le fichier. Il s’agit de guillemets intelligents ou de guillemets avec des formulaires différents pour les guillemets ouvrants et fermés, que vous voyez souvent lorsque vous utilisez un éditeur de texte enrichi tel que MS Word

Modifier

La question a édité. Je pense que c'est parce que vous avez choisi le mauvais outil. Les éléments de menu encode permettent de modifier le codage si les caractères ne sont pas affichés correctement. Il traite simplement la même séquence d'octets lue sur le disque comme un autre encodage. Comme ASCII et UTF-8 sont différents, vous obtenez une séquence d'octets UTF-8 mal formée et vous verrez le résultat ci-dessus. Vous devez choisir convert to UTF-8 pour pouvoir modifier tous les octets d'entrée.

notepad encoding

Vous avez également confondu ANSI et ASCII. ANSI fait souvent référence à Windows-1252, un jeu de caractères utilisé dans les fenêtres anglaises et certaines langues d'Europe occidentale. C'est un sur-ensemble de l'ISO 8859-1, bien que l'ISO 8859-1 puisse également être appelé ANSI. ISO 8859-1 est également les 256 premiers points de codage Unicode. Il s'agit donc d'un sous-ensemble d'Unicode, mais il n'est pas compatible avec le codage UTF-8. ASCII est un jeu de caractères de 7 bits et est un sous-ensemble de l'ANSI qui est codé sur 8 bits, mais il est aussi parfois appelé ANSI, bien que pas très correct

https://en.wikipedia.org/wiki/ANSI_character_set

En général, la relation entre les jeux de caractères est la suivante

ASCII < ISO 8859-1 < Windows-1252
        ^
        Unicode
38
phuclv