如何在读取CSV时指定编码格式?

如何在读取CSV时指定编码格式?,csv,go,utf-8,Csv,Go,Utf 8,我正在写一个包来读取Go中的CSV文件,我需要打开可能以不同格式编码的CSV文件(如UTF8、Latin1或其他格式)。有没有办法指定要读取的CSV文件的编码格式 NewReader返回从r读取的新读取器 提供一个将csv文件字符集映射到Unicode UTF-8的io.Reader到csv.NewReader 比如说, import ( "encoding/csv" "golang.org/x/text/encoding/charmap" ) file, err :=

我正在写一个包来读取Go中的CSV文件,我需要打开可能以不同格式编码的CSV文件(如UTF8、Latin1或其他格式)。有没有办法指定要读取的CSV文件的编码格式

NewReader返回从r读取的新读取器


提供一个将csv文件字符集映射到Unicode UTF-8的
io.Reader
csv.NewReader

比如说,

import (
    "encoding/csv"

    "golang.org/x/text/encoding/charmap"
)

file, err := os.Open(filename)
if err != nil {
    return err
}
defer file.Close()
rdr := csv.NewReader(charmap.ISO8859_15.NewDecoder().Reader(file))

NewReader返回从r读取的新读取器


提供一个将csv文件字符集映射到Unicode UTF-8的
io.Reader
csv.NewReader

比如说,

import (
    "encoding/csv"

    "golang.org/x/text/encoding/charmap"
)

file, err := os.Open(filename)
if err != nil {
    return err
}
defer file.Close()
rdr := csv.NewReader(charmap.ISO8859_15.NewDecoder().Reader(file))

这太棒了。有没有办法在读取文件之前确定编码类型?我想做的是:做一个循环来读取csv文件,这些文件可能有几种类型的编码:utf-8、latin-1或其他。有没有办法预先检测CSSV文件的类型?这很好。有没有办法在读取文件之前确定编码类型?我想做的是:做一个循环来读取csv文件,这些文件可能有几种类型的编码:utf-8、latin-1或其他。有没有办法预先检测CSSV文件的类型?
import (
    "encoding/csv"

    "golang.org/x/text/encoding/charmap"
)

file, err := os.Open(filename)
if err != nil {
    return err
}
defer file.Close()
rdr := csv.NewReader(charmap.ISO8859_15.NewDecoder().Reader(file))