Frage

Ich habe eine ANSI-codierte Textdatei, die nicht als ANSI codiert werden soll, da es akzentuiert war Zeichen, die ANSI nicht unterstützt. Ich würde lieber arbeiten mit UTF-8.

Sind die Daten korrekt decodiert werden oder ist es verloren in Umcodierung?

Welche Tools konnte ich verwenden?

Hier ist ein Beispiel von dem, was ich habe:

ç é

ich aus dem Zusammenhang sagen kann (Cafà © sein Café sollte), dass diese sollten diese beiden Zeichen sein:

ç é
War es hilfreich?

Lösung

EDIT: Eine einfache Möglichkeit zu beseitigen, bevor sie in kompliziertere Lösungen bekommen: Sie haben versucht, den Charakter zu utf8 im Texteditor einstellen Einstellung in dem Sie die Datei gerade lesen? Dies könnte nur ein Fall von jemandem sein, Ihnen eine UTF-8-Datei zu senden, die Sie in einem Editor Satz gerade lesen cp1252 zu sagen.

Nur die beiden Beispiele nehmen, ist dies ein Fall von UTF-8 durch die Linse aus einem einzigen Byte-Codierung gelesen, wahrscheinlich einer der ISO-8859-1, iso-8859-15 oder cp1252. Wenn Sie Beispiele für andere Problem Zeichen schreiben kann, sollte es möglich sein, dass die nach unten zu verengen.

Als visuelle Inspektion der Zeichen irreführend sein können, müssen Sie auch auf die zugrunde liegenden Bytes suchen: die § Sie auf dem Bildschirm sehen können entweder 0xA7 oder 0xc2a7 sein, und das wird die Art der Zeichensatz-Konvertierung bestimmen Sie zu tun.

Kann man davon ausgehen, dass alle Ihre Daten in genau der gleichen Art und Weise verzerrt worden -, dass sie aus der gleichen Quelle gekommen ist und durch die gleiche Abfolge von Transformationen hinter sich, so dass zum Beispiel kein einziges é in Ihrem Text ist , es ist immer §? Wenn ja, kann das Problem mit einer Folge von Zeichensatzkonvertierungen gelöst werden. Wenn Sie spezifischere über die Umwelt sein können Sie sind in der Datenbank und Sie verwenden, hier jemand kann wohl sagen Ihnen, wie Sie die entsprechende Umwandlung durchzuführen.

Ansonsten, wenn das Problem Zeichen nur an einigen Stellen in den Daten auftritt, ist, müssen Sie es von Instanz Instanz nehmen, die auf Annahmen entlang der Linien von „kein Autor beabsichtigt § in ihrem Text zu setzen, so wann immer Sie es sehen, ersetzen durch ç“. Die letztere Option ist riskanter, erstens, weil diese Annahmen über die Absichten der Autoren falsch sein könnte, zum anderen, weil man sich jedes Problem Charakter erkennen müssen werden, was unmöglich sein könnte, wenn es zu viel Text ist visuell zu inspizieren oder wenn es geschrieben in einer Sprache oder Schrift, die fremd ist.

Andere Tipps

Führen Sie die folgenden Schritte mit Notepad ++

1- Originaltext Kopieren

2- In Notepad ++, öffnen neue Datei, ändern Encoding -> eine Codierung wählen denken Sie der ursprüngliche Text folgt. Versuchen Sie auch die Codierung „ANSI“, wie manchmal Unicode-Dateien gelesen werden als ANSI von bestimmten Programmen

3- Einfügen

4- Dann in Unicode zu konvertieren, indem wieder in Gang im gleichen Menü: Encoding -> "Encode in UTF-8" (nicht "Convert to UTF-8") und es wird hoffentlich lesbar worden

Die oben genannten Schritte gelten für die meisten Sprachen. Sie müssen nur die ursprüngliche Codierung erraten, bevor in Notepad einfügen ++, dann durch das gleiche Menü zu einer alternativen Unicode-basierten Codierung konvertieren, um zu sehen, wenn die Dinge lesbar werden.

Die meisten Sprachen gibt es in zwei Formen der Codierung: 1- Die alte Legacy-ANSI (ASCII) Form, nur 8 Bit, wurde zunächst von den meisten Computern verwendet. 8 Bit erlaubt nur 256 Möglichkeiten, 128 von ihnen, wo die regulären Latein und Steuerzeichen, die letzten 128 Bits anders gelesen wurden auf den PC Spracheinstellungen abhängig 2- Die neue Unicode-Standard (bis zu 32 Bit) einen einzigartigen Code für jedes Zeichen geben in allen derzeit bekannten Sprachen und viel mehr zu kommen. wenn eine Datei Unicode ist es sollte installiert mit der Sprache der Schrift auf jeden PC zu verstehen. Beachten Sie, dass auch UTF-8 bis zu 32 Bit hinausgeht und ist genauso breit wie UTF-16 und UTF-32 nur versucht es 8 Bits mit lateinischen Zeichen zu bleiben nur, um Speicherplatz zu sparen

Wenn Sie Zeichenfolge wie § und à © zu sehen, es ist in der Regel ein Hinweis darauf, dass eine UTF-8-Datei von einem Programm geöffnet wurde, dass es in als ANSI (oder ähnlich) liest. Unicode-Zeichen wie diese:

U + 00C2 Lateinischer Großbuchstabe A mit Zirkumflex
U + 00C3 Lateinischer Großbuchstabe A mit Tilde
U + 0082 Pause erlaubt hier
U + 0083 Einlaufen hier

neigen dazu, in ANSI-Text zu zeigen, da die Variable-Byte-Strategie, die UTF-8 verwendet. Diese Strategie wird sehr gut erklärt hier .

Der Vorteil für Sie ist, dass das Erscheinungsbild dieser ungeraden Zeichen macht es relativ leicht zu finden, und so ersetzen, Fälle einer nicht ordnungsgemäßen Konvertierung.

Ich glaube, dass, da ANSI verwendet immer 1 Byte pro Zeichen, können Sie diese Situation mit einem einfachen Handgriff können Such- und Ersetzungsvorgang. Oder bequeme, mit einem Programm, das eine Tabellenzuordnung zwischen den beanstandeten Sequenzen und den gewünschten Zeichen enthält, wie diese:

â € œ -> „# sollte eine Öffnung doppelt geschweiften Zitat
sein â €? ->“# sollte ein Schließen Doppel geschweiften Zitat sein

Jeder beliebiger Text, es ist in Englisch vorausgesetzt, wird eine relativ kleine Anzahl von verschiedenen Arten von Substitutionen hat.

Ich hoffe, das hilft.

Mit vim von der Kommandozeile:

vim -c "set encoding=utf8" -c "set fileencoding=utf8" -c "wq" filename

In erhabener Texteditor Datei -> öffnen Sie mit Codierung. -> wählen Sie die richtige Codierung

Im Allgemeinen ist die Codierung wird automatisch erkannt, aber wenn nicht, können Sie die obige Methode verwenden.

Wenn Sie Fragezeichen in der Datei angezeigt werden oder die Akzente schon verloren gehen, geht zurück auf UTF-8 wird nicht Ihre Ursache helfen. z.B. wenn Café wurde cafe -. Ändern Codierung allein wird nicht helfen (und Sie werden Originaldaten benötigen)

Können Sie etwas Text hier einfügen, das wird uns sicher helfen zu beantworten.

Und dann gibt es das etwas ältere Recode Programm.

Es gibt Programme, die die Kodierung einer Datei wie chardet zu erfassen versuchen. Dann könnte man es in eine andere Codierung konvertieren mit iconv. Aber das setzt voraus, dass der ursprüngliche Text noch intakt ist und keine Information verloren geht (zum Beispiel durch Akzente oder ganze Umlaute zu entfernen).

fand ich eine einfache Möglichkeit, die automatische Erkennung Dateicodierungen - die Datei in eine Textdatei ändern (auf einem Mac die Dateierweiterung umbenennen, um zu .txt) und ziehen Sie ihn an einem Mozilla Firefox-Fenster (oder Datei -> Öffnen). Firefox wird die Codierung erkennen - man kann sehen, was es mit unter Ansicht aufkam. -> Zeichencodierung

Ich änderte Codierung meiner Datei mit Textmate, sobald ich die richtige Codierung kannte. Datei -> Öffnen Sie erneut Codierung und wählen Sie Ihre Codierung. Datei dann -> Speichern unter, und ändern Sie die Codierung auf UTF-8 und Zeilenenden zu LF (oder was auch immer Sie wollen)

Unter OS X Synalyze It! in verschiedenen Kodierungen zeigen Teile der Datei können (alle, die von unterstützten die ICU-Bibliothek). Sobald Sie wissen, was ist die Quelle kodieren, können Sie die gesamte Datei (Byte) über die Zwischenablage kopieren und einfügen in ein neues Dokument, in dem die Zielcodierung (UTF-8 oder was auch immer Sie mögen) ausgewählt ist.

Sehr hilfreich, wenn sie mit UTF-8 oder anderen Unicode-Darstellungen arbeiten, ist Unicodechecker

Ich fand diese Frage, wenn nach einer Lösung zu einer Codepage Problem der Suche i mit chinesischen Schriftzeichen hatte, aber am Ende meines Problem war nur ein Problem mit Windows sie nicht korrekt in der Benutzeroberfläche angezeigt werden.

Falls jemand anderes hat das gleiche Problem, man kann es einfach beheben, indem die lokale in Fenster zu China zu ändern und dann wieder zurück.

fand ich die Lösung hier:

http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-can-i-get-chinesejapanese-characters- zu / fdb1f1da-b868-40d1-a4a4-7acadff4aafa? page = 2 & auth = 1

Auch Gabriels Antwort als Blick auf die Daten in Notepad ++ upvoted war, was mir über Fenster kippte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top