Не видя никакого кода, сложно догадаться, что происходит, но я подозреваю, что вы передаете unicode
чему-то, что затем преобразует это в str
.
например.
>>> str(u'\xe9')
Traceback (most recent call last):
File "<pyshell#39>", line 1, in <module>
str(u'\xe9')
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128)
Вероятно, вам следует кодировать все, что вы передаете, чтобы оно превратилось в подходящий поток байтов. Если он ожидает Unicode в str
, то, скорее всего, utf8 - выбор, но обратитесь к документации для любых модулей, которые вы используете.
yourstring = yourunicode.encode("utf8")
unicode не является байтовой кодировкой, поэтому ее нельзя использовать для взаимодействия двух систем ... для этого необходимо применять кодировку (например, UTF8, UTF16 и т. Д.), Что понимают обе стороны , Таким образом, наличие postgres в unicode и python в unicode не позволяет вам просто передавать все их внутренние представления - в интерфейсе вам нужно будет указать, какую кодировку должен использовать каждый .
Что должен знать каждый кодировщик о Unicode