美文网首页
解决SQLAlchemy MySQL Oracle 中文执行乱

解决SQLAlchemy MySQL Oracle 中文执行乱

作者: Op_小剑 | 来源:发表于2018-06-29 18:11 被阅读0次

    在使用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')
    

    相关文章

      网友评论

          本文标题:解决SQLAlchemy MySQL Oracle 中文执行乱

          本文链接:https://www.haomeiwen.com/subject/ndaayftx.html