CSV-Codierung in Go: Umgang mit Strings in Anführungszeichen
Im Codierungs-/CSV-Paket von Go kann der Umgang mit Strings in Anführungszeichen manchmal zu unerwarteten Ergebnissen führen . Beim Schreiben von CSV-Datensätzen ist es wichtig, die Anforderungen des Standards für die Kodierung von Sonderzeichen wie doppelten Anführungszeichen zu verstehen.
Gemäß der CSV-Spezifikation müssen doppelte Anführungszeichen innerhalb eines Felds durch ein zweites doppeltes Anführungszeichen maskiert werden. Diese Escape-Sequenz ist aus Analysegründen erforderlich.
Beispiel:
<code class="go">import "encoding/csv" record := []string{ "Unquoted string", "Cr@zy text with , and \ and \" etc", } writer := csv.NewWriter(writer) writer.Write(record)</code>
Der obige Code schreibt eine Zeichenfolge mit doppelten Anführungszeichen mit Escapezeichen:
<code class="csv">Unquoted string "Cr@zy text with , and \ and \" etc"</code>
Vermeiden zusätzlicher Anführungszeichen:
Um das Einfügen zusätzlicher Anführungszeichen beim Lesen einer CSV-Datei zu vermeiden, sollten die folgenden Schritte unternommen werden:
Codebeispiel:
<code class="go">func writeCSV() { writer := csv.NewWriter(writer) s := "Cr@zy text with , and \ and \" etc" record := []string{ "Unquoted string", "Quoted string", fmt.Sprintf("%q", s), } writer.Write(record) } func readCSV() { reader := csv.NewReader(reader) records, err := reader.ReadAll() for _, record := range records { // Printed records automatically have double quotes unescaped by the CSV reader. fmt.Println(record) } }</code>
Ausgabe:
[Unquoted string Cr@zy text with , and \ and " etc] [Quoted string Cr@zy text with , and \ and " etc]
Das obige ist der detaillierte Inhalt vonWie gehen Sie mit in Anführungszeichen gesetzten Zeichenfolgen bei der CSV-Kodierung mit dem Paket „encoding/csv' von Go um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!