zoukankan      html  css  js  c++  java
  • python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position

    问题描述:

      写了一个执行sql的模块,引用了cx_oracle,在windows机器上完美运行,移植到Centos上就会报错,

      UnicodeEncodeError: 'ascii' codec can't encode characters in position

    检查过程:

      代码编码为utf-8,print编码为utf-8,文件编码为utf-8,服务器编码为utf-8,各种正常

      定位代码报错位置,开始怀疑是sql执行成功,返回值有中文报错,但是后来通过观察,是传入sql,并没有执行成功,执行的过程中就报错了。

      最后只能各种百度,各种尝试,发现如下解决办法:

      

    解决方法:

    在你执行sql的代码前加上如下代码:

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

    如果是用的django,也可以将这段代码放进每个app的admin.py中,就会全局生效(未测试。按理说是可以的)

  • 相关阅读:
    VC环境OpenSSL编译笔记
    手动造工具TaskJobManage
    Java性能分析工具
    ES77
    Flink消费kafka
    阻塞对列
    C# 超时事件
    毕业前做一件事
    PID控制器——控制网络爬虫速度
    2.5 OpenEuler 中C与汇编的混合编程(选做)
  • 原文地址:https://www.cnblogs.com/by1994/p/11612339.html
Copyright © 2011-2022 走看看