解决SQLAlchemy MySQL Oracle 中文执行乱码问题

在使用SQLAlchemy 往数据库插入数据时,提示

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

这个是因为设置编码的问题,下面分别说下Oracle 和MySQL解决方案.

  • Oracle
import  os

os.environ["NLS_LANG"] = "GERMAN_GERMANY.UTF8" 

  • MySQL
URI = f"mysql+pymysql://{USER}:{PASSWORD}@{HOST}:{PORT}/{db}?charset=utf8"

以上就是解决方案!

如果还是不可以,尝试在create_engine 时 添加 encoding

engine = create_engine(URI, convert_unicode=False,
                       pool_recycle=10,
                       pool_size=50,
                       echo=True,
                       encoding='utf8')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容