Python oracle数据库操作时,中文查询报错

python中使用oracle数据库进行查询时,出现下面的错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 54-57: ordinal not in range(128)

错误定位是在cur.execute(sql)进行查询的这句。
因为提示编码问题,一直在折腾编码,各种断点加下来,其实语句本身并没有发生乱码,而且因为使用的python3.x,默认已经是utf-8编码,不该出现这样的问题啊。。
各种查,把网上各种改编码的方法试了一下遍。。
最后发现搜索方式不对..最后的最后终于找到了,是oracle的一个环境变量没有配。
windows下可以参考:

环境变量.png

 添加变量名:NLS_LANG
 添加变量值:SIMPLIFIED CHINESE_CHINA.UTF8

Mac下可以直接在数据库操作的文件顶部添加,给oracle设置字符集。

import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

大功告成!!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 41,226评论 0 48
  • 可以看我的博客 lmwen.top 或者订阅我的公众号 简介有稍微接触python的人就会知道,python中...
    ayuLiao阅读 3,363评论 1 5
  • 测试: http://blog.csdn.net/chenmengyi828/article/details/52...
    Miley_MOJIE阅读 1,156评论 0 1
  • 夜又来了,还是那么漆黑那么安静,一如那年失去你的夜。那夜,你永久地离开了我这个朋友,离开了这个刺痛你心灵的世界。 ...
    依诺king阅读 243评论 0 3
  • 不经意间想起,昔人已乘黄鹤去,恰好十年了。风华绝代,干净地来,干净地走,果决利落,仿佛行云流水,胜却多少凡夫俗子?...
    骑鹤汉阳阅读 174评论 0 0

友情链接更多精彩内容