Comment vérifier l'encodage d'un fichier CSV
J'ai un fichier CSV et je souhaite comprendre son codage. Est-il une option de menu dans Microsoft Excel qui peut m'aider à détecter
OU dois-je besoin de faire usage de langages de programmation comme le C# ou PHP pour le déduire.
Double Possible de superuser.com/questions/280603/...
OriginalL'auteur Vipul | 2016-05-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement ouvrir le fichier en utilisant le bloc-notes et puis goto Fichier -> Enregistrer sous. En regard du bouton Enregistrer, il y aura un encodage déroulant et le fichier de codage en cours sera sélectionné.
Demandez-vous si Windows intégré dans l'éditeur de texte, bloc-notes utilise un python (ou potentiellement js) de la bibliothèque? Je suis certain qu'il ne veut pas car il va être écrit dans un natif langage compilé comme le C++. Aussi, l'encodage de texte est basé sur des faits, pas de sentiments, de sorte que si vous avez des connaissances de pourquoi c'est une mauvaise réponse, par tous les moyens, de l'élever, mais vos sentiments ne sont pas pertinents à la discussion.
Voici la chose: le format CSV n'ont pas un moyen d'identifier son encodage de caractères. Le format lui-même ne l'est pas. Donc, tout ce qui ouvre un fichier CSV doit deviner ce que le codage a été utilisé pour créer le fichier. La question est, comment le bloc-notes le faire? Chardet est une bibliothèque qui est utilisé pour cela et il est basé sur la façon dont les navigateurs le faire (autant que je me souvienne, il était à l'origine un programme C). Si le bloc-notes est de deviner le codage (par opposition à l'hypothèse de toutes ces volumes sont
windows-1252
ou quelque chose), c'est d'utiliser quelque chose comme chardet. Mais quoi? Nous n'avons aucune idée. Je ne recommanderais pas cette approche. C'est une boîte noire.Je vais ajouter une chose en plus. Chardet (et d'autres bibliothèques) travail de renifler le contenu du fichier pour les modèles binaires qui serait commun dans certains encodages. Si vous faites cela, par programmation, vous pouvez consulter l'ensemble du dossier pour ces sortes de motifs. Si vous le faites via une interface graphique, il se doit d'être rapide, et vous aurez presque certainement se limiter à la première X octets du fichier, qui peut ne pas contenir le motif. Donc...je recommande d'utiliser une bibliothèque pour cet effet, qui peut lire le fichier en entier, pas une interface graphique, comme le bloc-notes, qui aurait besoin d'être performante pour l'utilisateur..
L'OP a demandé spécifiquement pour une solution qui ne nécessite pas l'utilisation d'une bibliothèque. Oui, ce n'est pas une solution parfaite avec les inconnues, nous savons que 1. le bloc-notes charge un grand nombre de données car elle ralentit avec de gros fichiers. 2. Le bloc-notes est très mature et écrite par Microsoft, donc il est probable qu'il fait un assez bon travail de détection de l'encodage. Sur la balance, je pense que la solution est assez bon et qui nécessite le moins d'effort.
OriginalL'auteur CamW
Dans les systèmes Linux, vous pouvez utiliser fichier de commande. Il vous donnera le bon encodage
Exemple:
De sortie:
Attention: je ne pense pas que c'est très fiable. J'ai sauvé une plaine csv et vérifié le code hexadécimal et il a été GB2312 (mon système de codage par défaut). Mais le fichier résultat est
ASCII-text
. Cependant, peut-êtreASCII-text
ici est synonyme de système par défaut qui est au-delà de son sens originel.OriginalL'auteur Jitender Kumar
Utilisation chardet https://github.com/chardet/chardet (documentation est court et facile à lire).
Installer python, puis pip install chardet, lors de la dernière utilisation de la commande en ligne de commande.
J'ai testé sous GB2312 et c'est assez précis. (Assurez-vous d'avoir au moins quelques caractères, échantillon avec 1 seul personnage peut échouer facilement).
file
n'est pas fiable comme vous pouvez le voir.OriginalL'auteur Rick
Si vous utilisez Python, il suffit d'utiliser une fonction print() pour vérifier l'encodage d'un fichier csv. Par exemple:
La sortie est quelque chose comme ceci:
OriginalL'auteur Alineat