ANSI à UTF-8 dans Notepad ++

25

J'ai un texte encodé en ANSI:

Fichier texte ANSI

Lorsque j'ai essayé de le convertir en UTF-8 (en utilisant le menu Notepad ++ Encoding> UTF-8), j'obtiens des caractères étranges:

Fichier texte UTF-8

Je pensais que UTF-8 était un surensemble de ANSI et que par la suite je n'aurais pas de tels problèmes. Existe-t-il de toute façon que je peux éviter l'apparition de ces personnages étranges?

user3658425
la source
Je ne vois pas ce qui est bizarre dans cette dernière image
phuclv
Je voulais dire les caractères non affichables. Comment éviter cela?
user3658425
Avez-vous modifié la question? Je pense que je vois les images inversées
phuclv
1
Oui, désolé, j'ai poussé ma dernière modification juste après que quelqu'un ait ajouté les images, supprimant ainsi l'ajout: si vous pouvez les rajouter, ce serait génial!
user3658425

Réponses:

38

UTF-8 n'est pas un jeu de caractères, juste un encodage pour Unicode. Les 128 premiers caractères sont identiques à ASCII mais diffèrent dans les 128 octets élevés. Un octet avec le bit élevé défini (ou> = 0x80) est un caractère étendu en ASCII tandis qu'en 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. Ce sont des citations intelligentes ou des citations avec différents formulaires pour ouvrir et fermer des citations, que vous voyez souvent lorsque vous utilisez un éditeur de texte enrichi tel que MS Word

modifier

La question a été modifiée. Je pense que c'est parce que vous avez choisi le mauvais outil. Les encodeéléments de menu permettent de modifier l'encodage si vous avez des affichages de caractères incorrects. 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 aurez une séquence d'octets UTF-8 mal formée et vous verrez le résultat ci-dessus. Vous devez choisir convert to UTF-8pour cela de modifier l'ensemble des octets d'entrée

codage du bloc-notes

Vous avez également confondu ANSI et ASCII. ANSI fait souvent référence à Windows-1252, qui est un jeu de caractères utilisé dans Windows anglais et certaines langues d'Europe occidentale. Il s'agit d'un sur-ensemble de l'ISO 8859-1, bien que l'ISO 8859-1 puisse également être appelé ANSI. ISO 8859-1 est également le premier 256 points de code d'Unicode, c'est donc un sous-ensemble d'Unicode, mais il n'est pas compatible avec le codage UTF-8. ASCII est un jeu de caractères 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
phuclv
la source
Merci, désolé d'avoir gâché charset avec l'encodage. Existe-t-il un moyen d'éviter d'avoir ces caractères non affichables et d'avoir des guillemets affichables à la place?
user3658425
@ user3658425 s'il vous plaît voir mon montage
phuclv
1
J'ai également édité les informations ANSI / ASCII ci
phuclv
3
Notez que, en général, "UTF-8 sans marque d'ordre des octets" est ce que vous voulez. Comme plusieurs autres l'ont dit dans le passé, "UTF-8 est le seul codage de chaîne utile."
Riking
4
@WillihamTotland utf8everywhere.org
phuclv