Ce n'est pas vraiment une question de programmation, existe-t-il une ligne de commande ou un outil Windows (Windows 7) pour obtenir l'encodage actuel d'un fichier texte? Bien sûr, je peux écrire une petite application C # mais je voulais savoir si quelque chose était déjà intégré?
206
Réponses:
Ouvrez votre fichier à l'aide du vieux bloc-notes vanille standard fourni avec Windows.
Il vous montrera l'encodage du fichier lorsque vous cliquez sur " Enregistrer sous ... ".
Cela ressemblera à ceci:
Quel que soit l'encodage sélectionné par défaut, c'est ce que votre encodage actuel est pour le fichier.
Si c'est UTF-8, vous pouvez le changer en ANSI et cliquez sur enregistrer pour changer l'encodage (ou vice-versa).
Je me rends compte qu'il existe de nombreux types d'encodage différents, mais c'était tout ce dont j'avais besoin lorsque j'ai été informé que nos fichiers d'exportation étaient en UTF-8 et qu'ils nécessitaient ANSI. C'était une exportation unique, donc le Bloc-notes me convenait parfaitement.
FYI: De ma compréhension, je pense que " Unicode " (comme indiqué dans le bloc-notes) est un terme impropre pour UTF-16.
Plus d'informations ici sur l' option " Unicode " du Bloc-notes : Windows 7 - UTF-8 et Unicdoe
la source
L'outil de ligne de commande (Linux) «fichier» est disponible sur Windows via GnuWin32:
http://gnuwin32.sourceforge.net/packages/file.htm
Si vous avez installé git, il se trouve dans C: \ Program Files \ git \ usr \ bin.
Exemple:
la source
file
commande dans cygwin . Tout ensemble d'outils POSIX pour Windows devrait avoirfile
.Si vous avez "git" ou "Cygwin" sur votre machine Windows, allez dans le dossier où se trouve votre fichier et exécutez la commande:
Cela vous donnera les détails d'encodage de tous les fichiers de ce dossier.
la source
file *
commandefile --mime-encoding
d'obtenir l'encodage du fichierUn autre outil que j'ai trouvé utile: https://archive.codeplex.com/?p=encodingchecker EXE peut être trouvé ici
la source
Voici mon avis sur la façon de détecter la famille Unicode d'encodages de texte via BOM. La précision de cette méthode est faible, car cette méthode ne fonctionne que sur les fichiers texte (en particulier les fichiers Unicode), et par défaut
ascii
lorsqu'il n'y a pas de nomenclature (comme la plupart des éditeurs de texte, la valeur par défaut seraitUTF8
si vous souhaitez faire correspondre l'écosystème HTTP / Web ).Mise à jour 2018 : je ne recommande plus cette méthode. Je recommande d'utiliser file.exe à partir des outils GIT ou * nix comme recommandé par @Sybren, et je montre comment le faire via PowerShell dans une réponse ultérieure .
Recommandation: Cela peut fonctionner raisonnablement bien si les
dir
,ls
ouGet-ChildItem
seulement des contrôles connus des fichiers texte, et lorsque vous cherchez seulement pour « mauvais encodages » dans une liste connue des outils. (Par exemple, SQL Management Studio utilise par défaut UTF16, qui a cassé GIT auto-cr-lf pour Windows, qui était la valeur par défaut pendant de nombreuses années.)la source
Get-FileEncoding
ne semble pas exister sur mon système. Est-ce une applet de commande personnalisée?Get-FileEncoding
sur poshcode. J'ai même passé en revue le punycode de python et de nodejs, mais cette petite version atteint 80/20 pour mon utilisation (plus comme 99/1). Si vousfile
hébergez des fichiers d'autres personnes, je vous suggère d'utiliser la commande de la réponse de Syben ( stackoverflow.com/a/34766140/195755 ) ou un autre décodeur Unicode de qualité production.default
(quand aucune nomenclature). Pour XML, JSON et JavaScript, la valeur par défaut est UTF8, mais votre kilométrage peut varier.J'ai écrit la réponse n ° 4 (au moment de la rédaction). Mais dernièrement, j'ai installé git sur tous mes ordinateurs, alors maintenant j'utilise la solution de @ Sybren. Voici une nouvelle réponse qui rend cette solution pratique à partir de powershell (sans mettre tout git / usr / bin dans le PATH, ce qui est trop encombrant pour moi).
Ajoutez ceci à votre
profile.ps1
:Et utilisé comme:
file.exe --mime-encoding *
. Vous devez inclure .exe dans la commande pour que l'alias PS fonctionne.Mais si vous ne personnalisez pas votre profil PowerShell.ps1, je vous suggère de commencer par le mien: https://gist.github.com/yzorg/8215221/8e38fd722a3dfc526bbe4668d1f3b08eb7c08be0 et l'enregistrer dans
~\Documents\WindowsPowerShell
. Il est sûr de l'utiliser sur un ordinateur sans git, mais écrit des avertissements lorsque git n'est pas trouvé.Le fichier .exe dans la commande est également la façon dont j'utilise à
C:\WINDOWS\system32\where.exe
partir de powershell; et de nombreuses autres commandes CLI du système d'exploitation qui sont «masquées par défaut» par powershell, * shrug *.la source
file
votre alias pour file.exe au lieu defile.exe
¯ \ _ (ツ) _ / ¯dir | where Size -lt 10000
vswhere.exe git
.where.exe
pour le différencier dewhere
PS, qui est un alias intégré pourWhere-Object
. Exemple:where.exe git*
vsls . | where Size -lt 10000
file.exe
la classe statique vs .NET, dont vous pourriez avoir besoin dans le même script qui détecte l'encodage. Exemple:[File]::SetCreationTime("readme.md", [DateTime]::Now)
.Une solution simple pourrait être d'ouvrir le fichier dans Firefox.
et l'encodage du texte apparaîtra dans la fenêtre "Informations sur la page".
Remarque: Si le fichier n'est pas au format txt, renommez-le simplement en txt et réessayez.
PS Pour plus d'informations, consultez cet article.
la source
Installez git (sous Windows, vous devez utiliser la console git bash). Type:
pour tous les fichiers du répertoire courant, ou
pour les fichiers dans tous les sous-répertoires
la source
Vous pouvez utiliser un utilitaire gratuit appelé Encoding Recognizer (nécessite java). Vous pouvez le trouver sur http://mindprod.com/products2.html#ENCODINGRECOGNISER
la source
Semblable à la solution répertoriée ci-dessus avec le Bloc-notes, vous pouvez également ouvrir le fichier dans Visual Studio, si vous l'utilisez. Dans Visual Studio, vous pouvez sélectionner "Fichier> Options d'enregistrement avancées ..."
La zone de liste déroulante "Encodage:" vous indiquera spécifiquement quel encodage est actuellement utilisé pour le fichier. Il contient beaucoup plus d'encodages de texte que le Bloc-notes, il est donc utile lorsqu'il s'agit de divers fichiers du monde entier et de tout le reste.
Tout comme le Bloc-notes, vous pouvez également modifier l'encodage à partir de la liste des options, puis enregistrer le fichier après avoir cliqué sur "OK". Vous pouvez également sélectionner l'encodage souhaité via l'option "Enregistrer avec l'encodage ..." dans la boîte de dialogue Enregistrer sous (en cliquant sur la flèche à côté du bouton Enregistrer).
la source
Quelques codes C ici pour une détection fiable de ascii, bom et utf8: https://unicodebook.readthedocs.io/guess_encoding.html
ÉDITER:
Une version PowerShell d'une réponse C # de: Un moyen efficace de trouver l'encodage de n'importe quel fichier . Fonctionne uniquement avec les signatures (boms).
la source
Le seul moyen que j'ai trouvé pour le faire est VIM ou Notepad ++.
la source