Navicat中出现乱码??

最近在用Ubuntu写python代码时用到了个问题,在Navicat里面插入的中文数据,去终端里执行sql语句或者用python程序执行读取出来的结果是乱码。而用sql语句在命令行里插入的中文数据,在Navicat里显示的是“??”一堆问号。

解决方法:

1、首先确定的是自己mysql的字符集是否都是utf8,通过mysql -u root -p然后输入数据库的密码登陆。在mysql命令行查询自己的字符集是否都是utf8(除了文件的编码是binary)。

show variables like ‘char%’;

1

如果不是utf8的话,通过

set character_set_clinet=utf8;

1

等命令修改字符集,其他的变量修改方法一样,将client换成需要改的connection等变量名称即可。

2、完成了以上步骤后发现问题还是存在,确认问题是出在Navicat客户端上,于是我打开了Navicat客户端,完成以下这些步骤后发现还是不能解决问题。如果你原本是打算按以下方法解决可以先暂停下,按照下一步骤3去试试先。

右键连接-编辑连接(有的版本似乎叫连接属性)-高级,在编码下拉项里确认为utf8。
右键数据库-编辑数据库-编码下拉栏确认为utf8。
右键数据库-新建查询-通过

set character_set_clinet=utf8;

1

等命令修改所有编码不为utf8的变量的字符集。

右键出现“??”问号的表-设计表-点每个字段的类型,确认每一个字段的字符集为utf8。

3、确认问题出在Navicat上,但确认所有字符集都为utf8了还是不能解决,于是我回到了打开Navicat客户端以后第一步做的事上,右键连接-编辑连接(有的版本似乎叫连接属性)-高级,在编码下拉项里选择了第一项,自动。

刷新出现问号的表,发现问号都变成了正常的汉字,之前在Navicat客户端手动输入的汉字变成了乱码(和终端里MySQL命令行查询结果出现了一致),将这些乱码在Navicat中重新输入以后再次测试,问题解决,mysql命令行里查询没有了乱码,Navicat里面的问号也没有了。

作者:bt1995
来源:CSDN
原文:https://blog.csdn.net/sinat_26546385/article/details/80428535
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Navicat导入数据时,可能会遇到文乱码的问题。以下是一些可能的原因和解决方法: 1. 数据源字符集不匹配:检查数据源的字符集设置,确保与导入目标数据库的字符集相匹配。可以在Navicat连接数据库时修改字符集设置。 2. 导入目标数据库字符集不正确:如果导入目标数据库的字符集设置不正确,导入可能会导致文乱码。确保目标数据库的字符集正确设置。可以使用ALTER DATABASE命令来更改数据库的字符集。 3. 导入文件编码格式不正确:确认导入文件的编码格式是否正确。确保导入文件使用的是与目标数据库相匹配的字符集,如UTF-8或GBK等。 4. 字段定义不正确:如果导入的数据表的字段定义不正确,可能会导致文乱码。确保将正确的字符集用于定义相应字段,以便正确存储和显示文字符。 5. 使用正确的字符集和校对规则:确保在创建数据库和表时使用正确的字符集和校对规则。校对规则定义了字符排序和比较规则,对于文字符的排序和比较很重要。 6. 使用Navicat内置的导入功能:Navicat提供了内置的导入功能,可以更好地处理文乱码问题。确保使用Navicat提供的导入功能进行数据导入,并检查导入设置选项。 总之,要解决Navicat导入文乱码问题,我们需要确保数据库、数据文件和字符集的设置正确,并使用正确的导入方式和选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值