我目前正在我的postgresql数据库上运行一个查询,它忽略了德语字符-umlauts。但是,我不想丢失这些字符,而是希望在查询的输出中使用德语字符或至少它们的等效字符(例如äae)。运行Python 2.7.12
当我将encode对象更改为replace
或xmlcharrefreplace
时,我得到以下错误:
psycopg2.ProgrammingError: syntax error at or near "?"
LINE 1: ?SELECT
代码段:
^{pr2}$如何将查询作为带德语字符的unicode对象传递?
我还尝试将查询解码为utf-8
,但随后出现以下错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
您只需要
conn.set_client_encoding("utf-8")
,然后就可以执行unicode字符串-sql,结果将被实时编码和解码:这个程序的Python2版本稍微复杂一些,因为我们需要告诉驱动程序,我们希望返回值作为unicode对象。另外,我用于输出的csv模块不支持unicode,所以需要一个变通方法。这里是:
^{pr2}$这里有一个解决方案来获得它们的编码等价物。您可以稍后重新编码,查询不会创建错误:
相关问题 更多 >
编程相关推荐