Bonjour,
Je viens de réinstaller notepad++ et j'ai toujours le même problème.
Lorsque je passe mon fichier en UTF-8 et que j'écrit un "é" par exemple il m'affiche xE9. Pourtant les "é" déjà présent s'écrivent normalement.
Je me trouve donc à un problème d'écriture.
Est-ce que quelqu'un aurait une idée ?
Merci d'avance.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
C'est bizarre, car, en ce qui me concerne, c'est exactement le contraire qui se produit !
Essayes les étapes suivantes :
Démarre Notepad++
Ouvre un nouveau document ( CTRL + N )
=> Document vierge avec l'encodage : UTF-8 w/o BOM, par défaut, pour moi !
Choisis l'option Encodage - Convertir en ANSI => encodage ANSI dans la barre d'état, en bas d'écran
Écris la phrase C'était un bel été.
A présent, choisis l'option Encodage - Encoder en UTF-8
=> Les 3 caractères é sont immédiatement remplacés par l'indication xE9, en vidéo inversée
Écris, à nouveau, la phrase C'était un bel été.
=> Cette fois, les caractères tapés sont correctement affichés :-)
Pourquoi ?
Et bien, quand, au début, tu as écrit la phrase dans le nouveau fichier, avec encodage ANSI, le caractère é est codé sur 1 octet ( \xe9 ) car le codage ANSI correspond, en fait, à l'encodage Windows-1252, dont tu peux retrouver la liste complète en choisissant l'option Édition - Tableau des caractères ASCII de N++ ou encore à l'adresse :
Quand tu as demandé d'encoder ce fichier dans un autre encodage ( UTF-8 ), Notepad++ ne modifie ABSOLUMENT PAS ton fichier. Il cherche à interpréter les codes hexa, ACTUELLEMENT inscrits dans le fichier, en fonction du NOUVEL encodage. Or il se trouve, que le code \xE9, unique, NE peut PAS exister dans un fichier UTF-8 ! Ce qui explique pourquoi tu vois le mot xe9, en vidéo inversée, indiquant que c'est un caractère UTF-8 NON valide
Pour mémoire, dans un fichier encodé en UTF-8, codant ABSOLUMENT TOUS les caractères de TOUTES les langues :
Tout caractère avec UNICODE code-point entre \x0 et \x7f est codé sur 1 octet
Tout caractère avec UNICODE code-point entre \x80 et \x7ff est codé sur 2 octets
Tout caractère avec UNICODE code-point entre \x800 et \xffff est codé sur 3 octets
Tout caractère avec UNICODE code-point entre \x10000 et \x1fffff est codé sur 4 octets
Et le "type" d'un octet, dans un fichier, codé en UTF-8, est, selon sa valeur, :
De \x00 à \x7F => Le SEUL octet d’une séquence de 1 octet ( caractère standard )
De \x80 à \xBF => Un octet de CONTINUATION d’une séquence ( du 1er au 3ème )
De \xC0 à \xC1 => Valeur INTERDITE
De \xC2 à \xDF => L'octet de DÉBUT d’une séquence de 2 octets
De \xE0 à \xEF => L'octet de DÉBUT d’une séquence de 3 octets
De \xF0 à \xF4 => L'octet de DÉBUT d’une séquence de 4 octets
De \xF5 à \xFF => Valeur INTERDITE
Par exemple, en UTF-8, le caractère é est codé avec les 2 octets C3 A9. Bien sûr, quand tu as réécrit ta phrase, après chaque frappe sur la touche é, les 2 codes hexa C3 et A9 sont, cette fois, placés dans le fichier et le caractère accentué est donc correctement affiché.
Maintenant, imagine qu'à la place de l'option Encodage - Encoder en UTF-8, tu aies choisi l'option Encodage - Convertir en UTF-8. Cette fois, Notepad++ MODIFIE EFFECTIVEMENT ton fichier car il ré-écrit le MÊME texte, en plaçant les codes adéquats, en fonction de l'encodage UTF-8.
Par exemple, le mot été est codé avec :
Les 3 octets E9 74 E9, si le fichier est encodé en ANSI
Les 5 octets C3 A9 74 C3 A9, si le fichier est encodé en UTF-8
J'espère t'avoir éclairé un peu le chemin :-)
N'hésites pas à me relancer !
A+
Amitiés
guy038
Last edit: THEVENOT Guy 2015-03-24
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Bonjour,
Je viens de réinstaller notepad++ et j'ai toujours le même problème.
Lorsque je passe mon fichier en UTF-8 et que j'écrit un "é" par exemple il m'affiche xE9. Pourtant les "é" déjà présent s'écrivent normalement.
Je me trouve donc à un problème d'écriture.
Est-ce que quelqu'un aurait une idée ?
Merci d'avance.
Bonjour Xeis,
C'est bizarre, car, en ce qui me concerne, c'est exactement le contraire qui se produit !
Essayes les étapes suivantes :
Démarre Notepad++
Ouvre un nouveau document ( CTRL + N )
=> Document vierge avec l'encodage : UTF-8 w/o BOM, par défaut, pour moi !
Choisis l'option Encodage - Convertir en ANSI => encodage ANSI dans la barre d'état, en bas d'écran
Écris la phrase C'était un bel été.
A présent, choisis l'option Encodage - Encoder en UTF-8
=> Les 3 caractères é sont immédiatement remplacés par l'indication xE9, en vidéo inversée
=> Cette fois, les caractères tapés sont correctement affichés :-)
Pourquoi ?
Et bien, quand, au début, tu as écrit la phrase dans le nouveau fichier, avec encodage ANSI, le caractère é est codé sur 1 octet ( \xe9 ) car le codage ANSI correspond, en fait, à l'encodage Windows-1252, dont tu peux retrouver la liste complète en choisissant l'option Édition - Tableau des caractères ASCII de N++ ou encore à l'adresse :
https://msdn.microsoft.com/en-us/goglobal/cc305145
Quand tu as demandé d'encoder ce fichier dans un autre encodage ( UTF-8 ), Notepad++ ne modifie ABSOLUMENT PAS ton fichier. Il cherche à interpréter les codes hexa, ACTUELLEMENT inscrits dans le fichier, en fonction du NOUVEL encodage. Or il se trouve, que le code \xE9, unique, NE peut PAS exister dans un fichier UTF-8 ! Ce qui explique pourquoi tu vois le mot xe9, en vidéo inversée, indiquant que c'est un caractère UTF-8 NON valide
Pour mémoire, dans un fichier encodé en UTF-8, codant ABSOLUMENT TOUS les caractères de TOUTES les langues :
Et le "type" d'un octet, dans un fichier, codé en UTF-8, est, selon sa valeur, :
Par exemple, en UTF-8, le caractère é est codé avec les 2 octets C3 A9. Bien sûr, quand tu as réécrit ta phrase, après chaque frappe sur la touche é, les 2 codes hexa C3 et A9 sont, cette fois, placés dans le fichier et le caractère accentué est donc correctement affiché.
Maintenant, imagine qu'à la place de l'option Encodage - Encoder en UTF-8, tu aies choisi l'option Encodage - Convertir en UTF-8. Cette fois, Notepad++ MODIFIE EFFECTIVEMENT ton fichier car il ré-écrit le MÊME texte, en plaçant les codes adéquats, en fonction de l'encodage UTF-8.
Par exemple, le mot été est codé avec :
Les 3 octets E9 74 E9, si le fichier est encodé en ANSI
Les 5 octets C3 A9 74 C3 A9, si le fichier est encodé en UTF-8
J'espère t'avoir éclairé un peu le chemin :-)
N'hésites pas à me relancer !
A+
Amitiés
guy038
Last edit: THEVENOT Guy 2015-03-24