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;解决中文乱码;此时使用命令再次查询,中文正常显示,亲测有效。

 

 

不足之处欢迎评价与指正,觉得有帮助,请点赞!

 

 

 

posted @ 2022-11-16 09:40  wancy  阅读(2811)  评论(0编辑  收藏  举报