1
golang으로 google api에서 csv 파일을 구문 분석하고 있는데 파일이 utf-16으로 인코딩되어 있습니다. 아래의 코드는 하나의 레코드 (헤더 건너 뛰기)를 읽고 레코드를 인쇄하려고 시도하지만 코드는 나 같은 출력이 이상해 :이상한 출력으로 CSV 파일을 구문 분석 할 때
, v=/09/20 00:35:42 k=Smartfren Andromax AD681H
내가 아마 UTF-16 인코딩과 관련된 추측하지만, 세부 사항을 모르는, 여기에 코드입니다 : 주요 패키지
import (
"encoding/csv"
"io"
"log"
"net/http"
"strings"
)
var url = "http://storage.googleapis.com/play_public/supported_devices.csv"
func main() {
resp, err := http.Get(url)
if err != nil {
return
}
defer resp.Body.Close()
r := csv.NewReader(resp.Body)
r.LazyQuotes = true
r.FieldsPerRecord = -1
// skip header
r.Read()
m := make(map[string]string)
for {
record, err := r.Read()
if err == io.EOF {
break
}
if err != nil {
log.Println(err)
continue
}
if len(record) >= 4 {
m[strings.TrimSpace(record[3])] = strings.TrimSpace(record[1])
for k, v := range m {
log.Printf("k=%s, v=%s\n", k, v)
}
break
}
}
}