1633 sujets
Formats, encodage, internationalisation, XML
La réponse est simple:
http://sourceforge.net/forum/message.php?msg_id=4048601[/url]
Si le fichier édité ne contient pas de BOM, Notepad++ en analyse le contenu pour déterminer le format --> s'il contient des caractères non-ANSI, il déclare alors le fichier UTF-8; sinon, il n'y a rien pour dire à Notepad++ que vous éditez un fichier UTF-8.
Ça explique entre autres la différence de comportement d'un usager à l'autre ("moi ça marche parfaitement"): l'originateur du fil de discussion devait utiliser un fichier sans BOM, 100% caractères ANSI, alors que d'autres utilisaient un fichier sans BOM comprenant des caractères non-ANSI.
http://sourceforge.net/forum/message.php?msg_id=4048601[/url]
Si le fichier édité ne contient pas de BOM, Notepad++ en analyse le contenu pour déterminer le format --> s'il contient des caractères non-ANSI, il déclare alors le fichier UTF-8; sinon, il n'y a rien pour dire à Notepad++ que vous éditez un fichier UTF-8.
Ça explique entre autres la différence de comportement d'un usager à l'autre ("moi ça marche parfaitement"): l'originateur du fil de discussion devait utiliser un fichier sans BOM, 100% caractères ANSI, alors que d'autres utilisaient un fichier sans BOM comprenant des caractères non-ANSI.
Mouais, je continue à ne pas bien cerner la logique de Notepad++ quand à la gestion des encodages. Je trouve qu'elle est loin d'être explicite, et qu'on a donc du mal à comprendre ce que l'on fait (dans quel encodage en enregistre, ou comment enregistrer dans tel ou tel encodage). C'est une des raisons pour lesquelles je me suis passé de cet éditeur de code sous Windows.
Par exemple: quand Notepad++ parle d'encodage ANSI, de quoi parle-t-il exactement?
- de l'encodage 7-bit ASCII (on confond souvent les deux, ANSI/ASCII, ça sonne un peu pareil)?
- de l'encodage 8-bit conçu par l'American National Standard Institute, encodage désigné sous le nom d'ANSI et adopté par Microsoft (à partir de Windows 3.1) qui en a fait l'encodage Windows-1252?
- d'ISO-8859-1 (qui n'a rien à voir avec ANSI, mais on n'est pas à une confusion près)?
Petit problème sympathique: ANSI/Windows-1252 est une extension d'ISO-8859-1. Si on enregistre un document avec des caractères ANSI absents d'ISO-8859-1, et qu'on déclare la page en ISO-8859-1 (ce que l'on fait souvent), des caractères sauteront peut-être/sans doute.
Autre point dérangeant: pour enregistrer en UTF-8 sans BOM, il faut: choisir l'encodage ANSI (toujours sans savoir s'il s'agit vraiment d'ANSI/Windows-1252), et sélectionner l'option «UTF-8 sans BOM». On marche sur la tête, là. UTF-8 n'est pas une extension d'ANSI (même si c'était le cas, ça ne justifierai pas de devoir «passer» par ANSI pour pouvoir encoder en UTF-8 sans BOM).
Pour résumer:
- si je sélectionne «ANSI», je ne sais pas ce que je vais obtenir au juste (dois-je déclarer du Windows-1252 ou autre chose?);
- si je sélectionne UTF-8, j'obtiens de l'UTF-8 avec BOM, alors qu'on aurait souhaité que le BOM soit une option à rajouter (vu qu'on rajoute un marqueur en début de fichier);
- si je veux obtenir de l'UTF-8 sans BOM, il faut que je choisisse ANSI, puis l'option UTF-8 sans BOM, ce qui n'a pas de sens.
Des trois options principales, la première est donc imprécise, la seconde illogique, et la troisième erronée.
Je crois que je vais placer un post-it «comprendre l'encodage des fichiers par Notepad++» en tête de ce salon...
Edit: source de certaines infos ci-dessus: http://www.alanwood.net/
Modifié par Florent V. (18 Oct 2007 - 23:42)
Par exemple: quand Notepad++ parle d'encodage ANSI, de quoi parle-t-il exactement?
- de l'encodage 7-bit ASCII (on confond souvent les deux, ANSI/ASCII, ça sonne un peu pareil)?
- de l'encodage 8-bit conçu par l'American National Standard Institute, encodage désigné sous le nom d'ANSI et adopté par Microsoft (à partir de Windows 3.1) qui en a fait l'encodage Windows-1252?
- d'ISO-8859-1 (qui n'a rien à voir avec ANSI, mais on n'est pas à une confusion près)?
Petit problème sympathique: ANSI/Windows-1252 est une extension d'ISO-8859-1. Si on enregistre un document avec des caractères ANSI absents d'ISO-8859-1, et qu'on déclare la page en ISO-8859-1 (ce que l'on fait souvent), des caractères sauteront peut-être/sans doute.
Autre point dérangeant: pour enregistrer en UTF-8 sans BOM, il faut: choisir l'encodage ANSI (toujours sans savoir s'il s'agit vraiment d'ANSI/Windows-1252), et sélectionner l'option «UTF-8 sans BOM». On marche sur la tête, là. UTF-8 n'est pas une extension d'ANSI (même si c'était le cas, ça ne justifierai pas de devoir «passer» par ANSI pour pouvoir encoder en UTF-8 sans BOM).
Pour résumer:
- si je sélectionne «ANSI», je ne sais pas ce que je vais obtenir au juste (dois-je déclarer du Windows-1252 ou autre chose?);
- si je sélectionne UTF-8, j'obtiens de l'UTF-8 avec BOM, alors qu'on aurait souhaité que le BOM soit une option à rajouter (vu qu'on rajoute un marqueur en début de fichier);
- si je veux obtenir de l'UTF-8 sans BOM, il faut que je choisisse ANSI, puis l'option UTF-8 sans BOM, ce qui n'a pas de sens.
Des trois options principales, la première est donc imprécise, la seconde illogique, et la troisième erronée.
Je crois que je vais placer un post-it «comprendre l'encodage des fichiers par Notepad++» en tête de ce salon...
Edit: source de certaines infos ci-dessus: http://www.alanwood.net/
Modifié par Florent V. (18 Oct 2007 - 23:42)