字符映射编解码器无法对位置 xx - xx 中的字符进行编码

charmap codec cant encode characters in position xx - xx

我正在尝试在 python 2.7.x

中使用 unicodecsv python 库
import codecs
import unicodecsv

def read(self, path):
    with codecs.open(path, "rb", encoding = "utf-8") as f:
        r = unicodecsv.reader(f, encoding = 'utf-8')    
        row = r.next()
        print row


read("unicode.csv")

错误: charmap 编解码器无法对位置 xx - xx

中的字符进行编码

我已经使用 txt 编辑器手动将我的 csv 文件转换为 utf-8,所以我确信输入文件没问题

我发现你的代码没有什么问题:

def read(self, path):

您在 class

内使用 self

使用 codecs.open 打开文件后,您可以使用标准 python csv reader.

经过一些修改:

f = "/home/dzagorulkin/workspace/zont/file.txt"

import codecs
#import unicodecsv

def read(path):
    with codecs.open(path, "rb", encoding = "utf-8") as f:            
        for line in f:
            print line
read(f)

我使用了none ASCII 文件并输出:

Меня Дима зовут! Меня Дима зовут!