读取utf-8并替换错误
Read utf-8 and replace errors
在 python 我可以读取 utf8 格式的文件并替换任何错误,如下所示:
with open(filename, encoding='utf-8', errors='replace') as ifile:
是否有 golang 的等效项?
谢谢。
Python 代码没有完全匹配,因为 Go 文件 return 文件数据是原样的。没有解码步骤。
如果您的目标是修复无效的 UTF-8 序列,请使用
bytes.ToValidUTF8 修复从文件中提取的数据。
var unicodeReplacement = []byte{0xef, 0xbf, 0xbd}
func readFileFix(filename string) ([]byte, error) {
p, err := os.ReadFile(filename)
if err != nil {
return nil, err
}
return bytes.ToValidUTF8(p, unicodeReplacement), nil
}
在 python 我可以读取 utf8 格式的文件并替换任何错误,如下所示:
with open(filename, encoding='utf-8', errors='replace') as ifile:
是否有 golang 的等效项?
谢谢。
Python 代码没有完全匹配,因为 Go 文件 return 文件数据是原样的。没有解码步骤。
如果您的目标是修复无效的 UTF-8 序列,请使用 bytes.ToValidUTF8 修复从文件中提取的数据。
var unicodeReplacement = []byte{0xef, 0xbf, 0xbd}
func readFileFix(filename string) ([]byte, error) {
p, err := os.ReadFile(filename)
if err != nil {
return nil, err
}
return bytes.ToValidUTF8(p, unicodeReplacement), nil
}