解决golang读取csv文件(中文文件),打印输出中文乱码的代码
func readcsvline() {
//file, err := os.Open("xy1.csv")
file, err := ioutil.ReadFile("xy1.csv")
if err != nil {
fmt.Println(err)
}
//解决读取csv中文乱码的问题
reader := csv.NewReader(transform.NewReader(bytes.NewReader(file), simplifiedchinese.GBK.NewDecoder()))
reader.FieldsPerRecord = -1
// csvdata, err := reader.ReadAll()
var data [][]string
for {
csvdata, err := reader.Read() // 按行读取数据,可控制读取部分
if err != nil && err != io.EOF {
fmt.Println("Error:", err)
break
}
if err == io.EOF {
break
}
data = append(data, csvdata)
}
for _, line := range data {
fmt.Println(line[0], line[1], line[2])
}
}
或者
func readcsvline2() {
//file, err := os.Open("xy1.csv")
file, err := ioutil.ReadFile("xy1.csv")
if err != nil {
fmt.Println(err)
}
//解决读取csv中文乱码的问题
reader := csv.NewReader(transform.NewReader(bytes.NewReader(file), simplifiedchinese.GBK.NewDecoder()))
reader.FieldsPerRecord = -1
// csvdata, err := reader.ReadAll()
for {
csvdata, err := reader.Read() // 按行读取数据,可控制读取部分
if err != nil && err != io.EOF {
fmt.Println("Error:", err)
break
}
if err == io.EOF {
break
}
fmt.Println(csvdata)
}
}