MySQL解决中文乱码的方法有以下几种:
1、设置字符集和排序规则
在创建数据库、数据表和修改数据表时,可以设置字符集为utf8或utf8mb4,并设置相应的排序规则。
创建数据库:
CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci;
创建数据表:
CREATE TABLE mytable ( id INT PRIMARY KEY, name VARCHAR(255) NOT NULL ) CHARACTER SET utf8 COLLATE utf8_general_ci;
修改数据表:
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
2、连接数据库时设置字符集
在连接MySQL数据库时,可以通过设置character_set_client
和collation_connection
参数来指定客户端的字符集和排序规则。
import pymysql conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', charset='utf8')
3、插入数据前设置字符集
在插入数据之前,可以通过设置character_set_client
参数来指定客户端的字符集。
import pymysql conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', charset='utf8') cursor = conn.cursor() sql = "INSERT INTO mytable (name) VALUES (%s)" data = ('张三',) cursor.execute(sql, data) conn.commit()
4、查询数据时设置字符集
在查询数据时,可以通过设置character_set_results
参数来指定结果集的字符集。
import pymysql conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', charset='utf8') cursor = conn.cursor() sql = "SELECT * FROM mytable" cursor.execute(sql) result = cursor.fetchall() for row in result: print(row)
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/637355.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复