使用 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/ ,如需转载,请注明出处,否则将追究法律责任。