【问题标题】:1300, "Invalid utf8mb4 character string: '\\xE2\\x96\\x88\\xE2\\x96\\x881300, "无效的 utf8mb4 字符串:'\\xE2\\x96\\x88\\xE2\\x96\\x88
【发布时间】:2018-06-18 02:55:26
【问题描述】:

我在 charset 和 db 列中设置了 utf8mb4,但在使用 pymysql 存储信息时出现此警告。在每次 INSERT 之前,我都会执行以下操作:

cursor.execute('SET NAMES utf8mb4')
cursor.execute('SET CHARACTER SET utf8mb4')

它会停止查询,但会发出警告而不插入记录。我该如何解决。连接设置如下:

connection = pymysql.connect(host=host,
                                     user=user,
                                     password=password,
                                     db=db_name,
                                     autocommit=True,
                                     charset='utf8mb4',
                                     cursorclass=pymysql.cursors.DictCursor)

【问题讨论】:

    标签: python mysql pymysql


    【解决方案1】:

    尝试以下方法:

    1. 对列使用COLLATE utf8mb4_general_ci
    2. 对列使用varchar(size) 数据类型而不是TEXT
    3. 读取时不要使用str(column),使用x.encode('utf-8')decode('utf-8')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-08
      • 2013-01-30
      • 2012-10-24
      • 2020-02-17
      • 2021-12-29
      • 2014-10-01
      • 2011-12-02
      • 2018-06-30
      相关资源
      最近更新 更多