\r\n\r\n\r\n\r\n\r\n

Chinesische Zeichen nach JSON-zu-CSV-Konvertierung: Wie behebt man Zeichensalat?

In nur drei Schritten lässt sich chinesischer Zeichensalat nach JSON-zu-CSV lokalisieren und beheben: Exportkodierung als UTF-8 bestätigen, BOM zur Datei hinzufügen und die Datei über den Importweg öffnen. Dieser Artikel erklärt außerdem, wie JSON-zu-CSV funktioniert, die Unterschiede zwischen beiden, die Verarbeitung großer Dateien, Szenarien beim Schnittstellendebugging und eine mobile Lösung ohne Installation – inklusive 5 häufiger Fehlerfälle.

· · 7 Minuten · 15 阅读 · 15 Abschnitte
Inhaltsverzeichnis
  1. Chinesische Zeichen nach JSON-zu-CSV-Konvertierung: Wie behebt man Zeichensalat?
  2. Warum kommt es zu Zeichensalat?
  3. Chinesische Zeichen nach JSON-zu-CSV-Konvertierung: Wie behebt man Zeichensalat?
  4. Wie führt man JSON-zu-CSV-Konvertierung durch?
  5. Unterschiede zwischen JSON und CSV
  6. Verarbeitung großer Dateien bei JSON-zu-CSV
  7. JSON-zu-CSV bei der Schnittstellendebugging
  8. JSON-zu-CSV auf dem Handy ohne Installation
  9. Häufige Fragen
  10. Auch mit BOM noch Zeichensalat – was tun?
  11. In Notepad normal, in Excel Zeichensalat
  12. Chinesisch wird zu \u4e2d\u6587
  13. Ein Array-Feld wird als JSON-String ausgegeben
  14. Nach der Konvertierung gibt es mehr Zeilen
  15. Fazit

Chinesische Zeichen nach JSON-zu-CSV-Konvertierung: Wie behebt man Zeichensalat?

Chinesischer Zeichensalat nach der Konvertierung von JSON zu CSV hat meist eine falsche Kodierung als Ursache: Beim Export wird mit der Standardkodierung des Systems geschrieben, Excel interpretiert die UTF-8-Bytes jedoch als GBK. Die Lösung besteht darin, zuerst sicherzustellen, dass die Exportkodierung UTF-8 ist, und Excel dann dazu zu bringen, sie korrekt zu erkennen.

Am einfachsten ist es, der CSV eine UTF-8-BOM (Byte Order Mark) hinzuzufügen. Sobald Excel sie sieht, öffnet es die Datei automatisch als UTF-8. Wenn Sie ein Tool verwenden, das lokal im Browser läuft, können Sie dies normalerweise in den Exportoptionen auswählen.

Warum kommt es zu Zeichensalat?

CSV ist reiner Text und enthält keine Kodierungsdeklaration. Ob chinesische Zeichen korrekt angezeigt werden, hängt davon ab, ob Schreib- und Leseseite dieselbe Kodierung verwenden.

Wird auf der Schreibseite UTF-8 gespeichert und auf der Leseseite als GBK interpretiert, entstehen „锟斤拷“ oder eine Reihe von Fragezeichen. Umgekehrt kann es ebenfalls zu Zeichensalat kommen.

Es gibt noch einen Fall: Die Daten selbst sind in Ordnung, aber Excel rät beim Doppelklick auf die Datei die falsche Kodierung. Wird die Datei mit Notepad oder per Code gelesen, ist alles normal. Das ist ein Anzeigeproblem, keine Datenbeschädigung.

Chinesische Zeichen nach JSON-zu-CSV-Konvertierung: Wie behebt man Zeichensalat?

Gehen Sie in der folgenden Reihenfolge vor. In den meisten Fällen lässt sich das Problem bereits mit den ersten beiden Schritten lösen.

  1. Exportkodierung auf UTF-8 bestätigen. Suchen Sie in den Exportoptionen nach „Kodierung“ oder „Encoding“ und wählen Sie UTF-8. Wenn nur „UTF-8 with BOM“ auswählbar ist, wählen Sie diese Option bevorzugt.
  2. BOM hinzufügen. Wenn eine UTF-8-Datei ohne BOM exportiert wurde, speichern Sie sie in einem Texteditor als „UTF-8 mit BOM“ oder lassen Sie das Tool direkt eine Version mit BOM exportieren.
  3. Datei über den Importweg öffnen. Gehen Sie in Excel über „Daten – Aus Text/CSV“ und wählen Sie die Kodierung manuell als UTF-8, statt die Datei doppelt anzuklicken.
  4. Kodierung des ursprünglichen JSON prüfen. Die JSON-Spezifikation verlangt UTF-8, aber manche Schnittstellen liefern Byte-Streams in GBK-Kodierung zurück. Bestätigen Sie zuerst die Kodierung der Quelldaten und entscheiden Sie dann über die Konvertierungsmethode.
  5. Prüfen, ob in Feldwerten noch Escapes übrig sind. Wenn chinesische Zeichen als Unicode-Escapes wie \u4e2d\u6587 geschrieben wurden, müssen sie vor dem Export zuerst dekodiert werden, sonst werden sie als Literal angezeigt.

Wenn die CSV nach der Behandlung der Kodierung immer noch fehlerhaft angezeigt wird, öffnen Sie die Datei mit einem Hex-Viewer und prüfen Sie, ob die ersten drei Bytes EF BB BF sind. Wenn ja, wurde die BOM geschrieben.

Wie führt man JSON-zu-CSV-Konvertierung durch?

Der grundlegende Ablauf besteht aus drei Schritten: JSON lesen, Struktur flach machen, CSV schreiben.

JSON erlaubt verschachtelte Objekte und Arrays, CSV kennt nur zweidimensionale Tabellen. Der erste Schritt besteht daher darin, die Verschachtelungsebenen in Spaltennamen zu entfalten. Zum Beispiel wird {"user":{"name":"张三"}} zu den Spaltennamen user.name.

Übliche Vorgehensweise:

  1. Jedes Objekt im JSON-Array als eine Zeile behandeln.
  2. Alle Objekte durchlaufen und alle vorkommenden Schlüssel als Kopfzeile sammeln.
  3. Fehlende Schlüssel mit leeren Strings füllen, damit die Spalten ausgerichtet bleiben.
  4. Wenn Werte Kommas, Anführungszeichen oder Zeilenumbrüche enthalten, sie in doppelte Anführungszeichen setzen und innere Anführungszeichen escapen.

Unter /tools finden Sie Tools, die lokal im Browser laufen; die Daten werden nicht auf einen Server hochgeladen. Die konkrete Tool-Seite finden Sie unter JSON-zu-CSV-Tool.

Unterschiede zwischen JSON und CSV

Wenn Sie die Unterschiede verstehen, können Sie einschätzen, was bei der Konvertierung verloren geht.

  • Struktur: JSON unterstützt verschachtelte Objekte und Arrays, CSV unterstützt nur flache zweidimensionale Tabellen.
  • Typen: JSON kennt Strings, Zahlen, Booleans, null usw., CSV besteht ausschließlich aus Text.
  • Kodierung: Die JSON-Spezifikation verlangt UTF-8, CSV schreibt nichts vor.
  • Größe: JSON ist wegen Schlüsselnamen und Klammern normalerweise größer als ein äquivalentes CSV.
  • Verwendung: JSON eignet sich für die Übertragung über Schnittstellen, CSV für die Anzeige in Tabellen und den Massenimport.

Der Preis der Konvertierung ist, dass verschachtelte Informationen flach gemacht werden. Array-Felder werden üblicherweise als JSON-String in eine Zelle serialisiert oder in mehrere Zeilen aufgeteilt.

Verarbeitung großer Dateien bei JSON-zu-CSV

Wenn Dateien mehr als einige zehn Megabyte groß sind, kann ein einmaliges Einlesen in den Speicher den Browser-Tab leicht blockieren.

Eine stabilere Strategie ist Streaming: blockweise lesen, zeilenweise schreiben. So hängt der Speicherverbrauch nur von der Größe einer einzelnen Zeile ab und wächst nicht mit der Datei.

Beachten Sie außerdem einige Punkte:

  • Zuerst einmal alle Schlüssel sammeln, damit später keine neuen Schlüssel auftauchen und die Spalten verschieben.
  • Bei großen Exporten die Live-Vorschau deaktivieren, um Rendering-Aufwand zu reduzieren.
  • Den Export in mehrere CSV-Dateien aufteilen; das ist leichter zu öffnen als eine riesige Datei.
  • Wenn der Browser-Speicher weiterhin knapp wird, auf ein Kommandozeilen-Tool umsteigen.

Lokal im Browser laufende Tools sind bei großen Dateien durch das Speicherlimit des Tabs eingeschränkt. Das liegt an der Umgebung, nicht am Tool. Bei sehr großen Dateien ist ein lokales Skript die bessere Wahl.

JSON-zu-CSV bei der Schnittstellendebugging

Beim Debuggen von Schnittstellen muss man die zurückgegebenen JSON-Daten oft schnell in eine Tabelle umwandeln, um Felder zu prüfen.

Der Schwerpunkt liegt hier darauf, die ursprüngliche Struktur zu erhalten und nicht vorschnell flach zu machen. Speichern Sie die Antwort zuerst als .json-Datei, prüfen Sie Kodierung und Vollständigkeit und konvertieren Sie erst dann.

Ein paar praktische Gewohnheiten:

  • Beim Speichern der Antwort ausdrücklich UTF-8 verwenden, damit sie nicht unterwegs verändert wird.
  • Zuerst prüfen, ob die oberste Ebene ein Objekt oder ein Array ist. Ein einzelnes Objekt muss zuerst in ein Array verpackt werden.
  • Auf Paginierungsfelder achten, damit nicht nur eine Seite konvertiert wird.
  • Bei Feldnamen mit Punkt oder eckigen Klammern auf Namenskonflikte bei Spalten achten.

Nach der Konvertierung die Spaltennamen mit der Schnittstellendokumentation abgleichen; so lassen sich fehlende Felder oder Namensänderungen schnell erkennen.

JSON-zu-CSV auf dem Handy ohne Installation

Bei der Verarbeitung von JSON auf dem Handy ist die Installation einer App oft umständlicher als die Nutzung einer Webseite.

Lokal im Browser laufende Tools funktionieren auch auf dem Handy, ohne dass eine App installiert werden muss und ohne dass Daten über das Netzwerk hochgeladen werden. Seite öffnen, einfügen oder Datei auswählen, exportieren – fertig.

Die Einschränkungen auf dem Handy liegen vor allem beim Speicher und bei der Dateiauswahl. Sehr große Dateien sollten nicht auf dem Handy verarbeitet werden. Nach dem Export können sie mit Tabellen-Apps geöffnet werden; bei Zeichensalat prüfen Sie ebenfalls zuerst die Kodierung.

Häufige Fragen

Auch mit BOM noch Zeichensalat – was tun?

Prüfen Sie zuerst, ob die BOM wirklich geschrieben wurde, und schauen Sie mit einem Hex-Viewer, ob am Anfang EF BB BF steht. Wenn sie geschrieben wurde und trotzdem Zeichensalat auftritt, liegt das Problem nicht an der BOM, sondern an der Kodierung der Datenquelle. Gehen Sie zurück zur JSON-Quelle und prüfen Sie, ob sie UTF-8 ist.

In Notepad normal, in Excel Zeichensalat

Das bedeutet, die Daten sind in Ordnung, aber Excel hat die Kodierung falsch geraten. Verwenden Sie stattdessen „Daten – Aus Text/CSV“ und geben Sie UTF-8 manuell an, statt die Datei doppelt anzuklicken.

Chinesisch wird zu \u4e2d\u6587

Das ist eine Unicode-Escape-Sequenz, kein Zeichensalat. Sie muss vor der Konvertierung dekodiert werden, um die Escapes in echte Zeichen zurückzuverwandeln, bevor die CSV geschrieben wird.

Ein Array-Feld wird als JSON-String ausgegeben

Das ist normal. CSV kennt keinen Array-Typ und kann Arrays nur als String in eine Zelle serialisieren. Wenn Sie sie entfalten möchten, müssen Sie sie manuell in mehrere Zeilen aufteilen.

Nach der Konvertierung gibt es mehr Zeilen

Meist wurden Array-Felder in mehrere Zeilen entfaltet. Prüfen Sie in den Konvertierungseinstellungen, wie Arrays behandelt werden, und wählen Sie „als String serialisieren“ oder „in mehrere Zeilen entfalten“.

Fazit

Chinesischer Zeichensalat lässt sich grundsätzlich durch eine einheitliche Kodierung lösen; bevorzugen Sie UTF-8 mit BOM. Die Antwort auf die Frage, wie man chinesischen Zeichensalat nach JSON-zu-CSV behebt, lautet letztlich: Schreib- und Leseseite müssen dieselbe Kodierung verwenden, und Excel muss wissen, welche das ist. Wählen Sie bei Tools bevorzugt solche, die lokal im Browser laufen; die Daten verlassen den eigenen Rechner nicht, was Debugging und Konvertierung sicherer macht.

更多文章
15 阅读 ·

blog.ctaTitle

blog.ctaDesc