Bagaimanakah anda mengendalikan rentetan yang disebut dalam pengekodan CSV dengan pakej `pengekodan/csv` Go?

Mary-Kate Olsen
Lepaskan: 2024-10-27 09:13:30
asal
963 orang telah melayarinya

How do you handle quoted strings in CSV encoding with Go's `encoding/csv` package?

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>
Salin selepas log masuk

Kod di atas akan menulis rentetan dengan petikan berganda yang terlepas:

<code class="csv">Unquoted string
"Cr@zy text with , and \ and \" etc"</code>
Salin selepas log masuk

Mengelakkan Petikan Tambahan:

Untuk mengelakkan sisipan petikan tambahan semasa membaca fail CSV, langkah berikut perlu diambil:

  • Apabila menulis rentetan yang dipetik, gunakan fmt.Sprintf("%q", rentetan) untuk melepaskan petikan berganda dengan betul.
  • Apabila membaca rentetan yang dipetik, pembaca CSV secara automatik menyahlepas petikan berganda, memastikan rentetan asal diperolehi .

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>
Salin selepas log masuk

Output:

[Unquoted string Cr@zy text with , and \ and " etc]
[Quoted string Cr@zy text with , and \ and " etc]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!