Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:UnicodeCodeError:';utf8';_Python_Postgresql_Python 2.7_Python Unicode - Fatal编程技术网

Python:UnicodeCodeError:';utf8';

Python:UnicodeCodeError:';utf8';,python,postgresql,python-2.7,python-unicode,Python,Postgresql,Python 2.7,Python Unicode,我保存重音字母有问题。我正在使用POSTGRESQL和Python 2.7 POSTGRESQL - ENCODING = 'LATIN1' 我已经添加了这一行,但不起作用 #!/usr/bin/python # -*- coding: UTF-8 -*- 有关错误消息的详细信息: UnicodeDecodeError: 'utf8' codec can't decode byte 0xed 拜托,你知道怎么修吗 @编辑: cur = conn.cursor() cur.execute

我保存重音字母有问题。我正在使用POSTGRESQL和Python 2.7

POSTGRESQL -  ENCODING = 'LATIN1'
我已经添加了这一行,但不起作用

#!/usr/bin/python
# -*- coding: UTF-8 -*-
有关错误消息的详细信息:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xed 
拜托,你知道怎么修吗

@编辑:

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'] 
这部分代码正在触发错误。这是我的口音

ob['CITY'] = row[2]    

首先要检查的是你的“重音字母”是否属于拉丁字母集——例如,á属于拉丁字母集,但ś不属于拉丁字母集。如果没有,您真的应该在PostgreSQL中使用UTF8编码(无论如何可能更安全)。

向我们展示导致异常的程序部分如何?请说明您是如何打开文件/流的,以及您是如何读取/写入文件/流的。您所说的“返回重音”是什么意思?该语句是一个赋值,您说它引发了一个异常。作业不会返回任何内容。引发异常的语句不能返回任何内容。尖锐的重音、单词“é”、“há”都是示例,这类字符正在返回,但我该怎么做?我不能修改PostgreSQL的任何内容。啊,你的Postgres数据库中已经有LATIN1,但你没有告诉Python这是LATIN1,因此Python采用UTF-8作为替代。调用
conn.set\u client\u encoding('LATIN1')
cur.execute
之前,它应该能够正确解码。甚至我在cur之前调用了
conn.set\u client\u encoding('LATIN1')
。。Python仍然采用UTF-8,这使得我无法看到“重音字符”。UnicodeDecodeError:'utf8'continues我发现。。缺少的是这些psycopg2.extensions导入。谢谢Błotosmętek