web-dev-qa-db-fra.com

Notepad ++ peut reconnaître le codage?

J'ai créé un fichier avec un contenu codé UTF-8 (en utilisant PHP fputcsv).

Lorsque j'ouvre ce fichier dans Notepad ++ - les caractères sont incorrects (Notepad ++ commence par l'encodage ANSI).

Lorsque je règle Format -> "Encoder en UTF-8" dans le menu - tout va bien.

Je suis préoccupé par le fait que Notepad ++ peut reconnaître le codage d’une manière ou d’une autre et qu’il ya peut-être un problème avec mon fichier créé avec fputcsv? Premier octet ou quelque chose?

10
Kamil

Détecter automatiquement un encodage n'est pas quelque chose qui peut être fait avec précision. Il est essentiel que le codage soit spécifié explicitement. On peut le deviner dans certains cas, mais même dans ce cas, pas avec 100% de certitude.

Cette documentation ( Encoding ) explique la situation en ce qui concerne Notepad ++. Ils soulignent également que la difficulté survient surtout si le fichier n'a pas été enregistré avec une marque d'ordre d'octet (BOM).

Étant donné que votre fichier s'affiche correctement une fois que vous avez défini manuellement l'encodage, je dirais qu'il n'y a rien de mal à la manière dont vous générez et sauvegardez le fichier. La seule chose que vous puissiez vérifier est si une nomenclature est en cours d'enregistrement, ce qui pourrait améliorer les chances de Notepad ++ de détecter automatiquement le codage.

Il convient de noter que, même si cela peut aider des éditeurs tels que Notepad ++ à identifier plus précisément l'encodage, selon le document Unicode Standard, la nomenclature n'est pas recommandée.

14
Chamila Chulatunga

Vous devez vérifier le coin inférieur droit de l'interface graphique du Notepad ++ pour voir l'encapsulation réelle utilisée. Le problème n’est pas spécifique à Notepad ++, car deviner le bon codage est un gros problème sans réelle solution. Il est donc préférable de laisser l’utilisateur choisir le codage le plus approprié dans chaque cas.

7
user1824407

Lorsque vous souhaitez refléter le codage du fichier texte dans un programme Java, vous devez prendre en compte deux considérations: le codage et le jeu de caractères. Lorsque vous ouvrez un fichier texte, l'encodage apparaît dans le menu "Encodage". Regardez également le point de menu de jeu de caractères. Sous "Europe de l'Est", vous trouverez "ISO 8859-2" et sous l'Europe centrale, "Windows-1250". Vous pouvez définir le codage correspondant dans le programme Java Lorsque vous consultez le tableau: https://docs.Oracle.com/javase/8/docs/technotes/guides/intl /encoding.doc.html Par exemple, pour le jeu de caractères européen Cenntral "Windows-1250", le tableau suggère le codage Java "Cp1250". Définissez le codage et vous verrez les caractères du programme correctement.

0