golang导出csv乱码解决方法:

在csv文件的开头写入 UTF-8 BOM

// 创建文件

dstf, err := os.Create(``"./data/" + fileName)

defer dstf.Close()

if err != nil {

beego.Error(``"create file error: " + err.Error())

return ""``, err

}


`dstf.WriteString(``"\xEF\xBB\xBF"``)` `// 写入UTF-8 BOM,防止中文乱码`

`// 写数据到文件`

`w := csv.NewWriter(dstf)`

`w.Write([]string{``"开始时间:"``, model.StartTime})`

`w.Write([]string{``"结束时间:"``, model.EndTime})`

`w.Write([]string{``"编号"``,` `"优惠卷名称"``,` `"优惠卷编号"``,` `"优惠卷类型"``,` `"优惠卷面值"``,` `"核销日期"``})`

WriteString:

WriteString["file","string"]

把 "string" 写入文件.

WriteString[channel,"string"]

把 "string" 写入流或进程.

WriteString[channel,expr1,expr2,…]

把 expri 转换为串,然后以序列形式把它们写到指定的输出通道.