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

发表于:2017-12-06 10:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Ge__    来源:36大数据

  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下可以参考:
  添加变量名:NLS_LANG
  添加变量值:SIMPLIFIED CHINESE_CHINA.UTF8
  Mac下可以直接在数据库操作的文件顶部添加,给oracle设置字符集。
  import os
  os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
  大功告成!!

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号