J'ai un texte encodé en ANSI:
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:
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?
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
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.
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