Go での CSV エンコーディング: 引用符で囲まれた文字列の処理
Go のエンコーディング/csv パッケージでは、引用符で囲まれた文字列の処理により予期しない結果が生じる場合があります。 。 CSV レコードを記述する場合、二重引用符などの特殊文字をエンコードするための標準要件を理解することが重要です。
CSV 仕様に従って、フィールド内の二重引用符文字は 2 番目の二重引用符文字を使用してエスケープする必要があります。このエスケープ シーケンスは、解析上の理由から必要です。
例:
<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>
上記のコードは、二重引用符がエスケープされた文字列を書き込みます:
<code class="csv">Unquoted string "Cr@zy text with , and \ and \" etc"</code>
余分な引用符の回避:
CSV ファイルの読み取り時に余分な引用符の挿入を回避するには、次の手順を実行する必要があります:
コード例:
<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>
出力:
[Unquoted string Cr@zy text with , and \ and " etc] [Quoted string Cr@zy text with , and \ and " etc]
以上がGo の `encoding/csv` パッケージを使用して CSV エンコードで引用符で囲まれた文字列をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。