Pengekodan CSV dalam Go: Mengendalikan Rentetan Dipetik
Dalam pakej pengekodan/csv Go, pengendalian rentetan yang disebut kadangkala boleh membawa kepada hasil yang tidak dijangka . Apabila menulis rekod CSV, adalah penting untuk memahami keperluan standard untuk pengekodan aksara khas, seperti petikan berganda.
Mengikut spesifikasi CSV, aksara petikan berganda dalam medan mesti dilepaskan menggunakan aksara petikan berganda kedua. Urutan melarikan diri ini diperlukan untuk alasan penghuraian.
Contoh:
<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>
Kod di atas akan menulis rentetan dengan petikan berganda yang terlepas:
<code class="csv">Unquoted string "Cr@zy text with , and \ and \" etc"</code>
Mengelakkan Petikan Tambahan:
Untuk mengelakkan sisipan petikan tambahan semasa membaca fail CSV, langkah berikut perlu diambil:
Contoh Kod:
<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>
Output:
[Unquoted string Cr@zy text with , and \ and " etc] [Quoted string Cr@zy text with , and \ and " etc]
Atas ialah kandungan terperinci Bagaimanakah anda mengendalikan rentetan yang disebut dalam pengekodan CSV dengan pakej `pengekodan/csv` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!