Dies ist eigentlich keine Programmierfrage. Gibt es eine Befehlszeile oder ein Windows-Tool (Windows 7), um die aktuelle Codierung einer Textdatei abzurufen? Sicher kann ich eine kleine C # -App schreiben, aber ich wollte wissen, ob bereits etwas eingebaut ist?
206
Antworten:
Öffnen Sie Ihre Datei mit dem normalen alten Vanille-Editor, der mit Windows geliefert wird.
Es zeigt Ihnen die Codierung der Datei, wenn Sie auf " Speichern unter ... " klicken .
Es wird so aussehen:
Unabhängig von der standardmäßig ausgewählten Codierung ist dies Ihre aktuelle Codierung für die Datei.
Wenn es sich um UTF-8 handelt, können Sie es in ANSI ändern und auf Speichern klicken, um die Codierung zu ändern (oder umgekehrt).
Mir ist klar, dass es viele verschiedene Arten der Codierung gibt, aber das war alles, was ich brauchte, als ich informiert wurde, dass unsere Exportdateien in UTF-8 waren und ANSI erforderlich waren. Es war ein einmaliger Export, also war Notepad genau das Richtige für mich.
Zu Ihrer Information: Nach meinem Verständnis ist " Unicode " (wie im Editor aufgeführt) eine falsche Bezeichnung für UTF-16.
Mehr hier auf Notepads " Unicode " -Option: Windows 7 - UTF-8 und Unicdoe
quelle
Das (Linux-) Befehlszeilentool 'file' ist unter Windows über GnuWin32 verfügbar:
http://gnuwin32.sourceforge.net/packages/file.htm
Wenn Sie git installiert haben, befindet es sich in C: \ Programme \ git \ usr \ bin.
Beispiel:
quelle
file
Befehl auch in cygwin verwenden . Jedes POSIX-Toolset für Windows sollte habenfile
.Wenn Sie "git" oder "Cygwin" auf Ihrem Windows-Computer haben, wechseln Sie in den Ordner, in dem sich Ihre Datei befindet, und führen Sie den folgenden Befehl aus:
Dadurch erhalten Sie die Codierungsdetails aller Dateien in diesem Ordner.
quelle
file *
Befehls zu filternfile --mime-encoding
denEin weiteres Tool, das ich nützlich fand: https://archive.codeplex.com/?p=encodingchecker EXE finden Sie hier
quelle
Hier ist meine Vorgehensweise zum Erkennen der Unicode-Familie von Textcodierungen über Stücklisten. Die Genauigkeit dieser Methode ist gering, da diese Methode nur für Textdateien (insbesondere Unicode-Dateien) funktioniert und standardmäßig
ascii
keine Stückliste enthält (wie bei den meisten Texteditoren ist die Standardeinstellung,UTF8
wenn Sie mit dem HTTP / Web-Ökosystem übereinstimmen möchten ).Update 2018 : Ich empfehle diese Methode nicht mehr. Ich empfehle die Verwendung von file.exe aus GIT- oder * nix-Tools, wie von @Sybren empfohlen, und ich zeige in einer späteren Antwort, wie dies über PowerShell funktioniert .
Empfehlung: Das kann recht gut funktionieren , wenn die
dir
,ls
oderGet-ChildItem
nur überprüft bekannten Textdateien, und wenn Sie nur für „schlechte Codierungen“ aus einer bekannten Liste von Tool suchen. (dh SQL Management Studio verwendet standardmäßig UTF16, wodurch GIT auto-cr-lf für Windows unterbrochen wurde, was für viele Jahre der Standard war.)quelle
Get-FileEncoding
scheint auf meinem System nicht zu existieren. Ist es ein benutzerdefiniertes Cmdlet?Get-FileEncoding
Poshcode. Ich habe sogar Punycode von Python und NodeJS überprüft, aber diese kleine Version erreicht 80/20 für meine Verwendung (eher 99/1). Wenn Sie Dateien anderer Personen hosten, empfehlen wir Ihnen, denfile
Befehl aus Sybens Antwort ( stackoverflow.com/a/34766140/195755 ) oder einen anderen Unicode-Decoder in Produktionsqualität zu verwenden.default
codiert (wenn keine Stückliste vorhanden ist). Für XML, JSON und JavaScript ist der Standardwert UTF8, Ihr Kilometerstand kann jedoch variieren.Ich habe die Antwort Nr. 4 geschrieben (zum Zeitpunkt des Schreibens). Aber in letzter Zeit habe ich Git auf allen meinen Computern installiert, also verwende ich jetzt die Lösung von @ Sybren. Hier ist eine neue Antwort, die diese Lösung von Powershell aus praktisch macht (ohne git / usr / bin in den PATH zu setzen, was für mich zu viel Unordnung ist).
Fügen Sie dies zu Ihrem hinzu
profile.ps1
:Und verwendet wie :
file.exe --mime-encoding *
. Sie müssen .exe in den Befehl aufnehmen, damit der PS-Alias funktioniert.Wenn Sie Ihr PowerShell-Profil jedoch nicht anpassen.ps1, empfehlen wir Ihnen, mit meinem zu beginnen: https://gist.github.com/yzorg/8215221/8e38fd722a3dfc526bbe4668d1f3b08eb7c08be0 und speichern Sie es unter
~\Documents\WindowsPowerShell
. Es ist sicher auf einem Computer ohne Git zu verwenden, schreibt jedoch Warnungen, wenn Git nicht gefunden wird.Die .exe im Befehl ist auch, wie ich
C:\WINDOWS\system32\where.exe
von Powershell benutze; und viele andere OS CLI-Befehle, die von Powershell "standardmäßig ausgeblendet" werden, * Achselzucken *.quelle
file
als Alias für file.exe anstelle vonfile.exe
¯ \ _ (ツ) _ / ¯dir | where Size -lt 10000
vs. zu unterscheidenwhere.exe git
.where.exe
, um es vonwhere
PS zu unterscheiden , das ein eingebauter Alias für istWhere-Object
. Beispiel:where.exe git*
vsls . | where Size -lt 10000
file.exe
statische Klasse vs .NET, das Sie möglicherweise in demselben Skript benötigen, das die Codierung erkennt. Beispiel :[File]::SetCreationTime("readme.md", [DateTime]::Now)
.Eine einfache Lösung könnte darin bestehen, die Datei in Firefox zu öffnen.
und die Textcodierung wird im Fenster "Seiteninfo" angezeigt.
Hinweis: Wenn die Datei nicht im TXT-Format vorliegt, benennen Sie sie einfach in TXT um und versuchen Sie es erneut.
PS Weitere Informationen finden Sie in diesem Artikel.
quelle
Installieren Sie git (unter Windows müssen Sie die git bash console verwenden). Art:
für alle Dateien im aktuellen Verzeichnis oder
für die Dateien in allen Unterverzeichnissen
quelle
Sie können ein kostenloses Dienstprogramm namens Encoding Recognizer verwenden (erfordert Java). Sie finden es unter http://mindprod.com/products2.html#ENCODINGRECOGNISER
quelle
Ähnlich wie bei der oben mit Notepad aufgeführten Lösung können Sie die Datei auch in Visual Studio öffnen, wenn Sie diese verwenden. In Visual Studio können Sie "Datei> Erweiterte Speicheroptionen ..." auswählen.
Das Kombinationsfeld "Codierung:" gibt an, welche Codierung derzeit für die Datei verwendet wird. Dort sind viel mehr Textcodierungen aufgeführt als in Notepad. Daher ist es nützlich, wenn Sie mit verschiedenen Dateien aus der ganzen Welt und was auch immer arbeiten.
Genau wie bei Notepad können Sie auch die Codierung aus der Liste der dortigen Optionen ändern und die Datei dann speichern, nachdem Sie auf "OK" geklickt haben. Sie können die gewünschte Codierung auch über die Option "Mit Codierung speichern ..." im Dialogfeld "Speichern unter" auswählen (indem Sie auf den Pfeil neben der Schaltfläche "Speichern" klicken).
quelle
Hier finden Sie einen C-Code für die zuverlässige Erkennung von ASCII, Bom's und Utf8: https://unicodebook.readthedocs.io/guess_encoding.html
BEARBEITEN:
Eine Powershell-Version einer C # -Antwort von: Effektiver Weg, um die Codierung einer Datei zu finden . Funktioniert nur mit Signaturen (Boms).
quelle
Der einzige Weg, den ich gefunden habe, um dies zu tun, ist VIM oder Notepad ++.
quelle