当前位置:首页 > 行业动态 > 正文

mysql解决中文乱码问题

在MySQL中解决中文乱码问题,可以通过设置字符集为utf8mb4,同时将数据库、数据表和列的字符集都设置为utf8mb4。

MySQL解决中文乱码的方法有以下几种:

1、设置字符集和排序规则

在创建数据库、数据表和修改数据表时,可以设置字符集为utf8或utf8mb4,并设置相应的排序规则。

创建数据库:

mysql解决中文乱码问题

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解决中文乱码问题

在连接MySQL数据库时,可以通过设置character_set_clientcollation_connection参数来指定客户端的字符集和排序规则。

import pymysql
conn = pymysql.connect(host='localhost', user='root', password='password', database='mydb', charset='utf8') 

3、插入数据前设置字符集

在插入数据之前,可以通过设置character_set_client参数来指定客户端的字符集。

mysql解决中文乱码问题

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)