我试图从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”。
答案 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