Python:UnicodeDecodeError:'utf8' [英] Python: UnicodeDecodeError: 'utf8'

查看:363
本文介绍了Python:UnicodeDecodeError:'utf8'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在保存带重音字母时遇到问题。我正在使用POSTGRESQL和Python 2.7

I'm having problem to save accented letters. I'm using POSTGRESQL and Python 2.7

POSTGRESQL -  ENCODING = 'LATIN1'

我已经添加了这一行,但是没有用!

I already added this line but does not worked!

#!/usr/bin/python
# -*- coding: UTF-8 -*-

有关错误消息的更多信息:

More about error message:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xed 

@Edit:

cur = conn.cursor()
cur.execute("SELECT * FROM users")
rows = cur.fetchall()


obj_list = list()
for row in rows:
 ob = dict() 
 ob['ID'] = row[0]
 ob['NAME'] = row[1]
 ob['CITY'] = row[2]
 ob['USERNAME'] = row[3]

 obj_list.append(ob)

# print obj_list
# sys.exit()
def add_object(ob, row):
 ws.cell(column=3, row=row).value = ob['ID']
 ws.cell(column=4, row=row).value = ob['NAME']
 ws.cell(column=6, row=row).value = ob['CITY']
 ws.cell(column=8, row=row).value = ob['USERNANE'] 

这部分代码正在触发错误。

This part of code is triggering the error. It's returning accent..

ob['CITY'] = row[2]    


推荐答案

首先要检查的是您的重音字母是否属于LATIN1集-例如,á是否,但ś没有。如果不是这样,您确实应该在PostgreSQL中使用UTF8编码(无论如何它可能更安全)。

First thing to check is whether your "accented letters" belong to LATIN1 set - for example, á does, but ś doesn't. If not, you really should use UTF8 encoding in PostgreSQL (it is probably safer anyway).

这篇关于Python:UnicodeDecodeError:'utf8'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆