ITPub博客

首页 > 应用开发 > Python > python cx_Oracle: UnicodeEncodeError: 'ascii' codec can't encode characters

python cx_Oracle: UnicodeEncodeError: 'ascii' codec can't encode characters

原创 Python 作者:wpgy 时间:2019-10-11 00:28:19 0 删除 编辑

使用 Python 连接到 Oracle 数据库执行 INSERT 操作,因为数据中包含 Ã 之类的特殊字符,导致 execute SQL 语句报错如下:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2: ordinal not in range(128)

Python 版本:3.7
脚本文件编码字符集:UTF-8

问题原因:
客户端需要设置如下环境变量:
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
LANG=AMERICAN_AMERICA.AL32UTF8


Linux 设置方法:
在 .bash_profile 添加如下两行:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LANG=AMERICAN_AMERICA.AL32UTF8

Windows 设置方法:
直接在环境变量里面设置



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31560527/viewspace-2659448/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
擅长: Oracle、MySQL, Python、PHP、Web 开发; 研究领域:数据库技术、自动化运维

注册时间:2018-11-01

  • 博文量
    29
  • 访问量
    39463