mysql插入表中的中文显示为乱码或问号的解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载。

  今天在做ssh的博客项目时发现mysql数据库中的中文显示为问号,网上查阅了很多资料,都不是很全,所以我总结一下,供大家参考和自己复习。

  1.我的计算机配置: windows系统(linux没试过)  mysql 5.6

    mysql中文显示乱码或者问号是因为选用的编码不对或者编码不一致造成的,我是通过修改my.ini配置文件。(配置文件在安装的根目录下如下图)

   原来的为my-default.ini (复制里面的内容改为my.ini,也就是重新命名)

  2.然后在my.ini如下修改

  [mydqld]和[client]段加入

     default-character-set=utf8  (有的版本不支持default-character-set=utf8,用character_set_server=utf8来取代 default-character-set=utf8即可)

     如果没有[client]就手工加入[client]段

     【1】在[client]节点下添加 (这个如果是另一种character_set_server=utf8 这样写我的会报错1067【mysql服务无法启动】,大家可以试试)  (这个是客户端的编码配置)
       default-character-set=utf8 
     【2】在[mysqld]节点下添加 (这个是服务器端编码的配置)(注:collation是排序方式)
       character-set-server=utf8 
      collation-server=utf8_general_ci 

  修改后如下图所示:

     

 

  3.然后重启mysql即可

   1)计算机---->右键--->管理---->服务和应用程序--->服务--->找到mysql即可

     2)我比较喜欢用命令行

   以管理员身份运行cmd.exe,进行如下操作。

    关闭服务 net stop mysql

    开启服务 net start mysql

        

 

  END: 然后就可以来查看是否变了编码格式。还是在cmd中

  1)输入 mysql -u root -p      进入mysql数据库 

  2)键入密码:*****(自己的密码,没有的话直接回车键,嗯其他情况如忘了root密码百度去orz。。)

  3)show variables like 'char%';  显示编码格式

  下图一为未修改my.ini配置文件的编码文件latin1(即ISO-8859-1),图二为已经修改过的。

  

                           图一(未修改)

   

                  图二(已修改编码)

  可以看出都已经更正为utf8了,这样新建立的数据库缺省就是UTF8编码了

 

 

  彩蛋:

  然后你以为到这就完了么,并没有。。

  接下来你会发现报这个错如下所示。

  上述错误是什么引起的呢,还是因为编码不正确啊!因为使用了已经创建好的数据库和表但没有更改为utf-8;

  通过以下命令查看表的编码为Latin1:

  show create table tablename(数据库名.表名);

  

  修改方法:

  ALTER DATABASE `数据库` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci 

  ALTER TABLE `数据表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci   (注:此句把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:

  

  

  

 

  数据库编码的修改和查询

  

  总结:也就是要更改数据库的默认字符集为utf8,更改表的字符集为utf8,更改列的字符集为utf8,然后重新启动MYSQL服务;

  最后大功告成!

  

  

  附MySql表、字段、库的字符集修改及查看方法的链接:http://www.jb51.net/article/68856.htm

 

  

  

 

  

 

  

 

 

 

 

 

 

 

 

 

 

 

 

  

转载于:https://www.cnblogs.com/houqi/p/5713176.html

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:出现中文乱码的原因是因为数据库的编码没有设置为支持中文的编码。MySQL的默认编码是Latin1,不支持中文。应该将数据库编码设置为utf8或utf8mb4来支持中文字符。可以通过查看数据库的编码设置来确认,使用命令"show variables like 'char%'"可以查看当前的字符集设置。\[1\] 引用\[2\]:解决MySQL插入中文乱码问题的方法是修改数据库的默认编码为utf8或utf8mb4。对于MySQL 5.7版本,可以通过修改字符集的默认方式来解决乱码问题。而MySQL 8.0版本默认的字符集已经是utf8,可以直接插入中文数据而不会出现乱码问题。如果忘记修改默认编码,就会出现乱码的问题。\[2\] 引用\[3\]:在MySQL 5.7版本中,在命令行使用MySQL创建表后向表中插入中文数据时可能会出现乱码问题。这是因为MySQL 5.7版本的默认编码是Latin1,不支持中文字符。所以在插入中文数据时会出现错误。而在MySQL 8.0版本之后,默认编码已经改为utf8mb4,避免了乱码问题。\[3\] 所以,要解决MySQL插入中文乱码问题,可以通过修改数据库的默认编码为utf8或utf8mb4来解决。 #### 引用[.reference_title] - *1* [mysql字符编码的设置以及mysql中文乱码解决方法](https://blog.csdn.net/yipiankongbai/article/details/16937815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [解决MySQL表中增加数据插入中文乱码问题](https://blog.csdn.net/cyaya6/article/details/125786006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值