Go의 CSV 인코딩: 인용 문자열 처리
Go의 인코딩/csv 패키지에서 인용 문자열을 처리하면 때때로 예상치 못한 결과가 발생할 수 있습니다. . CSV 레코드를 작성할 때 큰따옴표와 같은 특수 문자 인코딩에 대한 표준 요구 사항을 이해하는 것이 중요합니다.
CSV 사양에 따라 필드 내의 큰따옴표 문자는 두 번째 큰따옴표 문자를 사용하여 이스케이프해야 합니다. 이 이스케이프 시퀀스는 구문 분석을 위해 필요합니다.
예:
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!