python3.6 cx_oracle连接数据库报编码错UnicodeDecodeError

python3.6 cx_oracle连接数据库报编码错UnicodeDecodeError,第1张

我说下我遇到的情况

数据库字符集是 ZHS16GBK

错误的情况是

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 12: illegal multibyte sequence

经过检查,在fetchall()获取记录时,查询到的记录里面有乱码(应该是不包含在数据库现有字符集下的字符)

临时的一个解决办法是

db=cx_Oracle.connect(dblink,encoding='UTF-8')

这样可以读取了,读取到的内容为

广州市\ue738同泰路

其中 '\ue738'应该是之前不可被读取的字符,希望对各位有帮助

一、pl/sql developer 中文字段显示乱码

原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的。

二、查看和修改oracle数据库字符集:

select userenv('language') from dual

查询结果:

SIMPLIFIED CHINESE_CHINA.AL32UTF8

--修改oracle数据库字符集:(在SQL Plus中)

sql>conn / as sysdba

sql>shutdown immediate

database closed.

database dismounted.

oracle instance shut down.

sql>startup mount

oracle instance started.

total system global area 135337420 bytes

fixed size 452044 bytes

variable size 109051904 bytes

database buffers 25165824 bytes

redo buffers 667648 bytes

database mounted.

sql>alter system enable restricted session

system altered.

sql>alter system set job_queue_processes=0


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10067848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存