Mysql的中文变‘?’的解决办法

       当我们给我们创建的表无论是用Mysql语句插入,还是通过mysql的管理工具手动录入,都无法解决中文变?的问题。

        无论是在数据库中修改表还是库的相应字符格式都无法解决的时候。此时我们在安装新版的mysql中,也没有my.ini文件。这时我们就陷入一个僵局-----崩溃了,想砸了电脑。别慌!我花费了2个小时百度,尝试了很多办法,终于解决了。

1.现进入C:\Program Files\MySQL\MySQL Server 5.7\bin中,然后进入cmd控制台。

或者先进入cmd控制台,然后在进入C:\Program Files\MySQL\MySQL Server 5.7\bin文件目录。

 2.登录数据库

 mysql>mysql -hlocalhost -uroot -proot     

此时后续有两种方式。

数据库中字符出现乱码无非列的字符编码出现问题。

方式一:通过查询表各列编码,看是否列的编码出现的问题。

3.切换数据库  use 【数据库名称】

 

4.查询表的字符编码  show create table 【表名】

 此时会发现Name 的编码未Latinl.这是我们中文变成?的原由之一。我们现在改变这个。

alter table `表名`change `列名` `列名`varchar(32) character set utf8 not null;

5.设置完成后,再去尝试操作数据库,会发现问题解决啦。

 方式二.

 3.输入show variables like '%char%'语句,查询数据库的字符编码情况。

       此时我们会发现character_set_server、database的编码并非未utf8 ,这是我们的原因所在,此时我们进行修改吧。

分别输入下面2句语句。

 set @@character_set_server='utf8';

 

set @@character_set_database='utf8';

 4.设置完成后,我们再次输入show variables like '%char%'语句,查询数据库的字符编码情况。你会发现数据库编码设置成我们想要的了。

 5.关闭cmd,重启mysql服务,会发现问题解决啦。

 

 总结:面对编码问题,其实无需太担心,耐心的去解决,收获还是非常大的。也希望各位好友能在IT路上继续加油。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
MySQL中,中文显示出现乱码的问题可以有几个可能的原因。其中一个可能是字符编码设置不正确。当数据库字符编码不是UTF-8或GBK时,中文字符可能会显示为问号或乱码。解决这个问题的方法是确保数据库字符编码正确设置为UTF-8或GBK。你可以使用以下步骤进行设置: 1. 查看当前MySQL数据库字符编码设置,可以使用命令`show variables like 'char%'`。 2. 检查character_set_server的编码格式,如果不是UTF-8或GBK,需要进行修改。可以使用命令`set character_set_server = 'utf8'`或`set character_set_server = 'gbk'`进行修改。 3. 修改对应表的字符编码,可以使用命令`alter table [表名] modify [字段名] varchar(30) character set utf8;`或`alter table [表名] modify [字段名] varchar(30) character set gbk;`来将表的字符编码修改为UTF-8或GBK。 4. 重新插入中文数据,现在应该不会再出现乱码问题了。同时,在MySQL Workbench中查询数据时,中文也应该能够正常显示了。 总结起来,为了在MySQL中正确显示中文,需要注意以下几点: 1. 确保建立本体时采用UTF-8编码。 2. 设置Java开发环境的编码为UTF-8。 3. 将存储本体的数据库字符集设置为UTF-8或GBK。 4. 在JDBC连接MySQL数据库时,需要在DB_URL后添加参数"useUnicode=yes&characterEncoding=utf8"来指定字符编码为UTF-8。 通过以上设置,你应该能够解决MySQL中文显示乱码的问题,并且在MySQL Workbench中正常显示中文数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [mysql中文显示??的解决办法](https://blog.csdn.net/Amy_W_M/article/details/104861208)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [mysql数据库中文显示为“?”解决](https://blog.csdn.net/Sunshine8430/article/details/80307054)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值