Ermitteln Sie die Zeichencodierung unbekannter Zeichen in Notepad ++ und suchen Sie / ersetzen Sie sie

3167
user2068804

Ich habe eine CSV-Datei, in der ich folgenden Auszug sehen kann:

Bildschirmfoto

Ich habe diese "schwarzen" Zeichen durch Scrollen durch die Datei gefunden. Die Datei ist riesig (32 Mb). Ich bin nicht sicher, in welcher Kodierung sich die Datei befindet. Momentan ist mein Notepad ++ auf "Encode in UTF-8" eingestellt . Wenn ich versuche, ASCII -> HEX (Plugins -> Converter -> ASCII -> HEX) auszuführen, erhalte ich folgende Ausgabe:

EDA0BDEDB88A 

Ich würde gerne wissen:

  • Die Kodierung dieser schwarzen Zeichen.
  • Ein regulärer Ausdruck, um ähnliche Vorkommen in meiner CSV-Datei zu finden
1

1 Antwort auf die Frage

2
Wouter

Die schwarzen Zeichen werden dadurch verursacht, dass Notepad ++ diese Bytesequenzen nicht einem UTF-8-Endpunkt zuordnen kann, der visualisiert werden kann. Wie Sie vielleicht wissen, wird jedes Zeichen als eine Reihe von Bytes gespeichert. In diesem Fall sind diese Bytes

In Hexadezimal

ED A0 BD ED B8 8A 

In binär

1110 1101 1010 0000 1011 1101 1110 1101 1011 1000 1000 1010 

Das bringt uns zu Ihren Fragen.

Was ist die Kodierung dieser schwarzen Zeichen?

Dies sind zwei UTF-8-Zeichen. Genauer gesagt, der erste ED A0 BDist ein "hoher Ersatz", der zweite ED B8 8Aist ein "niedriger Ersatz" . Zusammen bilden sie ein UCS-Stellvertreter . Nun, da wir wissen, dass es sich um Ersatzzeichen handelt, können wir die Berechnung des Ersatzpaares umkehren .

Wenn Sie diese Bytefolgen in der UTF-8-Codepunktetabelle nachschlagen, werden Sie feststellen, dass die erste zu U+D83Dund die zweite zuzuordnen ist U+DE0A. Daher ist das Paar D83D + DE0A. Dies entspricht U + 1F60A, was ..... Drumroll Ein Smiley ist !

Die Sequenz, die Sie betrachten, ist also ein Smiley.

Ein regulärer Ausdruck, um diese Zeichen zu finden

Nun, da wir das wissen, können wir Regex verwenden, um Sequenzen wie folgt zu finden:

\x\x 

Und dann zu der Frage, die Sie später in den Kommentaren hinzugefügt haben (dies ist eine Bearbeitung).

Gibt es ein anderes Dienstprogramm, in dem ich die Zeichen finden kann, die nicht in UTF8 enthalten sind, in meiner CSV-Datei?

Ich habe nun gezeigt, dass die Zeichen in der Datei sind UTF-8. Um Ihre Frage dennoch zu beantworten, können Sie diese Website verwenden, wenn Sie möchten, dass ein Tool manuell die Kodierung einiger Zeichen sucht . Hier können Sie Text eingeben, die Kodierung angeben und in eine andere Kodierung umwandeln, um zu sehen, zu welchen Zeichen sie zugeordnet werden soll.

Gibt es ein anderes Dienstprogramm, in dem ich die Zeichen finden kann, die nicht in UTF8 enthalten sind, in meiner CSV-Datei? Bitte lass es mich wissen user2068804 vor 7 Jahren 0
Ich habe es herausgefunden! :) Schau dir meine Bearbeitung an. Die Sequenz, die Sie betrachten, ist ein Smiley! Problem gelöst. Fall abgeschlossen. Wouter vor 7 Jahren 0