Wie konvertiert man "Binär-text" "text sichtbar"?
Ich habe eine text-Datei voll von nicht-ASCII-Zeichen.
Ich kann nicht erkennen, dass die Codierung entweder file
oder enca
.
file non_ascii.txt
non_ascii.txt: Non-ISO extended-ASCII text
enca non_ascii.txt
Unrecognized encoding
Aber ich kann es öffnen, das sich normalerweise im Windows-Notepad++
Edit: Den obigen Ausdruck führt Missverständnis. Sorry für dieses.
In der Tat, ich nahm einige Teile der original-Datei und setzen Sie in neue text-Datei, die dann geöffnet in notepad++.
Die 2 Teile, die zeigt, wie unten beschrieben. Sie entschlüsselt werden 2 verschiedene Arten von notepad++.
Frage:
- Wie könnte ich erkennen, die Dateien, die Codierung unter linux?
- wie kann ich wieder die Charaktere vertreten durch
<F1><EE><E9><E4><FF>
?
Ich konnte nicht das Ergebnis von "grep 'сойдя' win.txt" obwohl die "сойдя" ist kodiert in<F1><EE><E9><E4><FF>
?
Inhalt der Datei slice wie folgt:
less non_ascii.txt
"non_ascii.txt" may be a binary file. See it anyway?
<F1><EE><E9><E4><FF>
<F2><F0><E0><EA><F2><EE><E2><E0><F2><FC><F1><FF>
<D0><F2><E9><E4><D7><E9><E7><E1><EC><E1><F3><F8>
<D1><E5><EA><F3><ED><E4>
<F0><E0><E7><E3><F0><F3><E7><EA><E8>
<EF><EE><E4><F1><F2><E0><E2><EB><FF><F2><FC>
<F0><E0><E7><E3><F0><F3><E7><EA><E5>
<F1><EE><E9><E4><F3>
<F0><E0><E7><E3><F0><F3><E7><EA><E0>
<F1><EE><E2><EB><E0><E4><E0><EB><E8>
<C1><D7><E9><E1><F0><EF><FE><F4><E1>
<CB><C1><D3><D3><C9><D4><C5><D2><C9><D4>
<F1><EE><E2><EB><E0><E4><E0><EB><EE>
<F1><EE><E9><E4><E8>
<F1><EE><E2><EB><E0><E4><E0><EB><E0>
- Was bedeutet
notepad++
denke, die Codierung ist? Es sollte sagen, dass es irgendwo in der status bar. - Bekomme ich 2 Ausschnitte aus der Datei. Sie sind mit "Windows-1251" und "ANSI". Gibt es vielleicht andere Codierung enthalten, in die Teile der Datei. So gibt es Möglichkeiten zum konvertieren der mixed-codierte Inhalte in UTF-8?
- Ihre Datei enthält Teile, codiert in unterschiedlicher Weise?
- Ich habe diese Datei Inhalte aus unterschiedlich Quellen. Durch das python-Skript Lesen Zeilen aus mehreren Dateien, dann schreiben Sie in eine Datei endgültig.
- Die beiden Proben nicht übereinstimmen (sind aus verschiedenen teilen des gleichen files vielleicht). Wenn Sie wollen die Menschen zu erraten, die kyrillische Codierung verwendet wurde, müssen Sie die post-side-by-side-Beispiele mit dem gleichen text.
- Sie können verketten Dateien in verschiedenen Kodierungen und dann mechanucally verwandeln das daraus resultierende Chaos in etwas, das Sinn macht.
- Nach meiner Antwort, es tatsächlich nicht zu sein scheinen mehrere Codierungen in der Datei. Notepad++ zeigt falsche Daten, wenn Sie dachte, es war CP1251 und einige Teile wurden in einer anderen Kodierung.
- Stimme mit Ihnen überein. Ich kann wohl verstehen, dass die beste Vorgehensweise ist, coverting-Codierung auf utf-8 beim Import von original-Quellen-Dateien.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Frage hat zwei Teile: (1) wie erkenne ich eine unbekannte Kodierung und (2) wie kann ich konvertieren, dass Sie zu etwas nützlich?
Der erste Teil ist die eigentliche Herausforderung, und kann wirklich nicht beantwortet werden universal-Bezug -- im Allgemeinen Fall gibt es keine sichere Weg, um eine unbekannte 8-bit-Codierung. Einige Codierungen geben Sie gute Hinweise (UTF-8 ist ein ausgezeichnetes Beispiel) und in vielen Fällen, wenn Sie eine gute Idee haben, was der text darstellen soll, kann das problem gelöst werden.
Einen Zuordnung der 8-bit-Zeichen Bedeutungen kann hilfreich sein (hust, das ist der link zu meiner) und in diesem Fall schnell Hinweise auf Windows code page 1251. Ein dickes Lob für die hex-dumps und das Bild mit der Darstellung, die Sie erwarten!
Mit, dass aus dem Weg, die Konvertierung ist einfach.
Sofern Ihr Linux-system eingerichtet ist, um die Verwendung von UTF-8 in das terminal Ihres
grep
Befehl sollte aufutf-8.txt
jetzt.Den Hinweis darauf, dass einige der text ist "ANSI" (dies ist eine falsche Sicht jedenfalls) ist wahrscheinlich nur ein Ablenkungsmanöver-soweit ich das beurteilen kann, alles in Ihrem Auszug aussieht, gut gebildet, CP1251.