MySQL--字符编码和字符集
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,前言:一般来说,出现中文乱码,都是客户端和服务端字符集不匹配导致的原因。(默认未指定字符集创建的数据库表,都是latinl字符集, 强烈建议使用utf8字符集)保证不出现乱码的思想:保证客户端、服务端
千家信息网最后更新 2025年11月11日MySQL--字符编码和字符集
前言:
一般来说,出现中文乱码,都是客户端和服务端字符集不匹配导致的原因。(默认未指定字符集创建的数据库表,都是latinl字符集, 强烈建议使用utf8字符集)
保证不出现乱码的思想:保证客户端、服务端、数据库、表字符集统一
坑:有的时候,cmd或者linux系统字符集问题,其实数据库是正确的,只是我们执行命令在终端看到的是乱码而已,这时需要设置linux系统字符集
1、查看liunx系统字符集:cat /etc/sysconfig/i18n
2、vim /etc/sysconfig/i18n
备注:始终牢记,存放数据的是字段,所以编码最后是以字段的编码为准,数据库和表的编码影响的时候字段的默认值,也就是说在设置了数据库编码之后,新建的表在不指定的情况下就会和数据库编码相同,而不指定字段的编码时,字段的编码和表相同。如果使用 Alter 修改一个表的字符编码,那原来的字段编码并不会发生改变,如果需要修改表编码的同时修改字段的编码,可以使用 convert
一、查看是什么字符集
1、查寻数据库是什么字符集
show create database django\G (django 是数据库名称)2、查寻表是什么字符集
show create table auth_group\G (auth_group 是表名称)ENGINE = InnoDB 该表数据库引擎是InnoDBDEFULT CHARSET=utf8 该表字符集是utf8COLLATE utf8_general_ci 校准规则3、查看所有字符集和对应的校准规则
show character set;二、解决方法:
1、插入数据的时候,先设置客户端插入字符集和数据库建表相同的字符集
eg:如果数据库表字符集是latinl,那么插入数据的时候也要是latinl方法:set names latinlinsert into student value('飞东')
2、将SQL语句放入文件中,使用source来执行这个文件,插入数据,则不会出现乱码,原理是和1一样的,只是放在文件中执行而已
方法:将下面两个语句放入一个新建文件中,如mysql.sql
set names Latinlinsert into student value('飞东')执行这个文件:source mysql.sql3、从其他文件导入数据库(避免导入数据有中文乱码的问题)
将数据编码格式保存为utf-8(UTF8不要导入gbk,gbk不要导入UTF8)
set names utf8;ALTERDATABASEDEFAULTCHARACTERSETCOLLATE utf8_general_ci; 修改数据库的编码格式ALTERTABLEDEFAULTCHARACTERSETCOLLATE utf8_general_ci; 修改表的编码格式LOADLOCAL'C:\\utf8.txt'INTOTABLE tb_name; 从文件中导入数据库4、永久修改默认客户端编码格式(修改my.cnf配置文件,针对MySQL 5.5版本以上)

5、永久修改默认服务端编码格式(修改my.cnf配置文件,针对MySQL 5.5版本以上)
修改完毕之后重启mysqld服务:service mysqld restart
三、常用命令
1、查看默认编码格式 show variables like "%char%";
character_set_client(客户端)、character_set_connection(连接)、character_set_results(结果) 三者字符集是一致的2、修改数据库的编码格式
ALTERDATABASEDEFAULTCHARACTERSETCOLLATE utf8_general_ci; 3、修改表的编码格式
ALTERTABLEDEFAULTCHARACTERSETCOLLATE utf8_general_ci; 4、通过ALTER 修改库或者表的字符集,只是对之后插入的数据有效,原来已经存在的数据无法修改,如果需要修改原来带有数据的字符集,只能通过把原来的数据导出来,再插入到新的已经修改过字符集的表(数据库)中。
四、建议
1、中英文环境,linux设置系统字符集为utf8,数据库服务端,客户端,数据库,表都是utf8字符集
2、无论是查寻还是插入,都先用set names utf8 先设置一下字符集
3、建议建数据库语句:
4、建议表语句:
4、建议表语句:
数据
字符
字符集
编码
数据库
文件
格式
字段
客户
客户端
乱码
建议
语句
服务
时候
系统
相同
只是
方法
名称
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术专业能评职称吗
深圳市易迅天空网络技术公司
软件开发团队先招
向表中增加数据库
不用拼爹的it软件开发行业
ice我的世界手机服务器的编号
真封神数据库文件
网络安全投诉中心
制作数据库需要哪些工具
数据库中int 20
日照定制软件开发哪家好
张家口科技产业互联网发展
苹果提示不支持服务器功能
卫星互联网和美国科技
树状结构 数据库设计
其他程序调用qt数据库
浙江c语言软件开发哪家可靠
国家网络安全特观后感
局域网网络安全研究方向
软件开发简易设计文档
软件开发项目全过程
悉尼 墨尔本 软件开发
软件开发需要技能
北京软件开发设计公司排名
网络安全编程实验报告
虚拟服务器需要每年都交钱吗
慧与全球大数据库
宝山区工商软件开发要多少钱
国外游戏软件开发公司
西瓜视频服务器错误应怎么办