如何在sqlalchemy的create_engine中更改编码选项?

时间:2019-10-16 11:35:18

标签: python oracle sqlalchemy cx-oracle

我试图从sqlalchemy设置create_engine函数的编码选项,但是没有用。

我尝试过:

conn = create_engine('oracle+cx_oracle://myid:mypassword@LAPTOP-5668M0F5:1521/ORCL?mode=2',encoding = "cp949")

但是将编码选项设置为'cp949'之后,错误消息仍然像

一样出现
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 0: invalid start byte

即使将编码选项更改为“ cp949”,我也不知道为什么编解码器仍是“ utf-8”。

1 个答案:

答案 0 :(得分:0)

尝试,在连接之前:

import os
os.environ["NLS_LANG"] = '.cp949'

我正在使用:

import os
from sqlalchemy import create_engine
os.environ["NLS_LANG"] = '.AL32UTF8'
engine = create_engine("oracle+cx_oracle://USERNAME:PASSWORD@ADRESS:1521/ORCL?charset=utf8", echo=True)
SQLText1 = "SELECT 'Test' FROM dual"
conn = engine.connect()
df = pd.read_sql_query(SQLText1, engine)
df

尝试:charset = cp949