SQL文件导入中文乱码问题
1.查看当前数据库的字符集的语句如下: show variables like ' character %';
- 说明:
- character_set_client:客户端请求数据的字符集。
- character_set_connection:客户机/服务器连接的字符集。
- character_set_database:默认数据库的字符集。
- character_set_filesystem:把操作系统上文件名转化成此字符集。
- character_set_results:结果集,返回给客户端的字符集。
- character_set_server:数据库服务器的默认字符集
- character_set_system:系统字符集。
- 执行SELECT语句时,如果字符集设置错误,可能发生乱码等问题。
2.客户端产生乱码的根本原因
- 客户端程序没有正确地设置客户端(client)字符集,导致原先的SQL语句被转换成当前连接(connection)所指定的字符集,而这种转换是会丢失信息的。另外,如果数据库字符集设置不正确,那么当前连接connection字符集转换成数据库(database) 字符集同样会导致丢失编码。
- character_set_client:要告诉服务器,发送的数据是何种编码;
- character_set_connection:告诉字符集转换器,转换成何种编码。
- character_set_results:查询的结果用何种编码。
- 如果以上三者都为字符集N,可简写为set names 'N';
3.导入SQL文件乱码问题
在navicat可视化导入一般不会出现问题。
使用命令source xxx.sql导入时,若出现中文乱码,需要在sql文件的首行加入/*!40101 SET NAMES utf8 */;然后在mysql命令窗口输入set names gbk;解决中文乱码;此时使用命令再次查询,中文正常显示,亲测有效。
不足之处欢迎评价与指正,觉得有帮助,请点赞!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署