在将中文数据插入MySQL数据库时遇到报错,通常是由于字符集设置不正确导致的。
MySQL中的字符集(Character Set)和排序规则(Collation)决定了如何存储和比较字符数据。常见的字符集包括utf8
、utf8mb4
等。
utf8
仅支持最多3字节的UTF-8编码。ERROR 1366 (HY000): Incorrect string value: '\\xE6\\x88\\x91\\xE7\\x88\\xB1...' for column 'column_name' at row 1
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
在连接数据库时设置字符集:
import pymysql
conn = pymysql.connect(
host='localhost',
user='user',
password='password',
db='database_name',
charset='utf8mb4'
)
通过以上步骤,可以有效解决中文插入MySQL报错的问题。确保数据库、表和列的字符集设置正确,并在连接数据库时指定正确的字符集。
领取专属 10元无门槛券
手把手带您无忧上云