1300,"无效的utf8mb4字符串:' \\ xE2 \\ x96 \\ x88 \\ xE2 \\ x96 \\ x88

时间:2018-01-09 05:35:11

标签: python mysql pymysql

我在列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)

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

  1. COLLATE utf8mb4_general_ci用于列
  2. 对该列使用varchar(size)数据类型而不是TEXT
  3. 在阅读时请勿使用str(column),而应使用x.encode('utf-8')decode('utf-8')