Pracuję z bazą danych zawierającą wiele chińskich znaków. Mój kod wychodzi coś takiego:Ustawianie kodowania wyników zapytania w cx_Oracle/UnicodeDecodeError z chińskimi znakami
connection = cx_Oracle.connect("%s/%[email protected]%s:%s/%s" % (username, password, host, port, service_name))
cursor = connection.cursor()
cursor.execute('SELECT HOTEL_ID,CREATE_TIME,SOURCE,CONTENT,TITLE,RATE,UPDATE_TIME FROM T_FX_COMMENTS')
for row in cursor:
# Stuff goes here
pass
Ale otrzymuję ten błąd:
Traceback (most recent call last):
File "test.py", line 17, in <module>
for row in cursor:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 26: illegal multibyte sequence
Wydaje GBK
nie wystarczy. Chcę, aby cx-oracle
dał mi GB18030
zakodowane wyniki, zamiast GBK
. Jak mam to zrobic?
cx_Oracle.Connection.encoding
jest tylko do odczytu ... Nie znalazłem niczego w dokumentacji cx-oracle
sugerującej, że mogę to zrobić.
Jestem na Pythonie 3.3.2 i cx-oracle
5.1.2. Musi być coś, czego tu brakuje. Pomoc jest doceniana!
Czy używasz Pythona 2 lub 3? – Maciek
Ten sam scenariusz dla mnie ... czy znalazłeś rozwiązanie? – daveoncode