python向数据库插入中文乱码问题

碰到编码问题就头疼啊!。。。。

在想数据库中插入中文时候,会出现如下错误提示:Warning: Incorrect string value: '\xE5\x8C\x97\xE4\xBA\xAC...' for column 'title' at row 1

这个异常主要是由于数据库的字符编码选择错误造成,MySQL的默认编码是Latin1,不支持中文,最好修改为utf8的字符编码为宜!


修改后就可以插入中文了。。。。。

在python里,import MySQLdb后,向数据库插中文乱码

第一步:数据库那边总得把字段类型设置为utf8;

第二步:在连接数据库的时候,加个参数,说明数据库那边的字段类型一致,charset='utf8'。
                     大概就是这样:
conn =MySQLdb.connect(host="127.0.0.1",user="nimei",passwd="nimei",db="nimei",charset="utf8") 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 SQLAlchemy 插入中文文本时,如果编码不正确,可能会导致乱码等问题。为了防止这种情况发生,可以采用以下措施: 1. 确保数据库的编码与 Python 的编码一致,例如 UTF-8。 2. 在 SQLAlchemy 的 create_engine 函数中添加 charset 参数,指定编码方式。 3. 在插入数据时,将文本以 Unicode 格式传入。例如使用 u'中文' 的形式。 4. 对于批量插入,可以使用 SQLAlchemy 的 execute 函数和 executemany 函数,这些函数支持传入参数,可以在传入参数时指定编码方式。 以下是一个例子,使用 SQLAlchemy 批量插入中文文本: ```python from sqlalchemy import create_engine, Column, Integer, String, Text from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class Message(Base): __tablename__ = 'message' id = Column(Integer, primary_key=True) content = Column(Text) engine = create_engine('mysql+pymysql://user:password@host:port/dbname?charset=utf8mb4') Session = sessionmaker(bind=engine) session = Session() data = [{'content': u'你好'}, {'content': u'世界'}] session.execute(Message.__table__.insert(), data) session.commit() ``` 在上述例子中,我们将数据库的编码设置为 UTF-8,使用了 pymysql 驱动程序,并将编码方式设置为 utf8mb4。同时,我们使用了 Unicode 编码的字符串 u'你好' 和 u'世界'。在批量插入时,我们使用了 execute 函数和 executemany 函数,将参数以列表的形式传递给函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值