UnicodeDecodeError,无效的连续字节

474
为什么以下项目失败?为什么使用 "latin-1" 编解码器会成功?
o = "a test of \xe9 char" #I want this to remain a string as this is what I am receiving
v = o.decode("utf-8")

这导致:
 Traceback (most recent call last):  
 File "<stdin>", line 1, in <module>  
 File "C:\Python27\lib\encodings\utf_8.py",
 line 16, in decode
     return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError:
 'utf8' codec can't decode byte 0xe9 in position 10: invalid continuation byte
13个回答

2
在这种情况下,我试图执行一个激活路径/文件.sql的.py文件。
我的解决方案是将file.sql文件的编码修改为"UTF-8 without BOM",它可以正常工作!
你可以使用Notepad++来完成此操作。
我将留下我的代码的一部分。
最初的回答:在这种情况下,我尝试执行一个激活路径/文件.sql的.py文件。我的解决方案是将file.sql文件的编码修改为"UTF-8 without BOM",这样就可以正常工作了!您可以使用Notepad++完成此操作。以下是我的代码的一部分。
con = psycopg2.connect(host = sys.argv[1],
port = sys.argv[2],dbname = sys.argv[3],user = sys.argv[4], password = sys.argv[5])

cursor = con.cursor()
sqlfile = open(path, 'r')

0

我遇到了这个问题,后来发现我直接从 Google Sheets 文件中保存了我的 CSV。换句话说,我在 Google Sheet 文件中。我选择了 "保存副本",然后当我的浏览器下载它时,我选择了打开。然后,我直接保存了 CSV。这是错误的做法。

对我有用的解决方法是先将表格保存为本地计算机上的 .xlsx 文件,然后从中导出单个工作表为 .csv。然后错误就被修复了,pd.read_csv('myfile.csv')


-2
解决方案是更改为“UTF-8无BOM”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接