java写入mysql数据库出现乱码怎么处理
admin
2023-05-27 19:21:27
0
  1. 下文内容主要给大家带来java写入mysql数据库出现乱码怎么处理,所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。 

    确保数据库数据表创建的编码一致:

创建数据库的时候:

java写入mysql数据库出现乱码怎么处理              CREATE   DATABASE   `Db` 
java写入mysql数据库出现乱码怎么处理               
  CHARACTER   SET   'utf8 ' 
java写入mysql数据库出现乱码怎么处理              
   COLLATE   'utf8_general_ci'

注:CHARACTER   SET   'utf8 ':这是设置字符编码;

   COLLATE   'utf8_general_ci':设置字符排序编码

可以通过命令行设置:alter table tableA character set utf8

建表的时候:      

      CREATE   TABLE   `TableA`   (                                                      `ID`   varchar(40)   NOT   NULL   default   ' '
java写入mysql数据库出现乱码怎么处理              `UserID`   
varchar(40)   NOT   NULL   default   ' ',  )                         ENGINE=InnoDB   DEFAULT   CHARSET=utf8

注:设置表的字符编码 DEFAULT   CHARSET=utf8

可以通过命令行设置:alter table tableA charset utf

设置URL的时候:  

jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8 

 注:这里useUnicode=true&characterEncoding=UTF-8这里可以不用添加,默认useUnicode为true

characterEncoding会自动检测当前用的数据库变而进行改变

2.上面的这些设置了可能会用错误,这需要修改mysql中my.ini配置文件

设置MySQL的默认字符集为utf8,找到客户端配置[client]在下面添加。

default-character-set=utf8

找到云服务器配置[mysqld]在下面添加

java写入mysql数据库出现乱码怎么处理

default-character-set=utf8

设定MySQL数据库以utf8编码运行,连接MySQL数据库时使用utf8编码

停止和重新启动MySQL

net stop mysql

net start mysql

注:找到服务器配置[mysqld]在下面添加:default-character-set=utf8这里加入会导致数据库无法启动

单独加入default-character-set=utf8即可

重新连接数据库,查看编码,数据表内容

  1. mysql> show variables like 'character%';

  2. --------------------------+-----------------------------------------------+

  3. | Variable_name            | Value                                         |

  4. +--------------------------+-----------------------------------------------+

  5. | character_set_client     | utf8                                          |

  6. | character_set_connection | utf8                                          |

  7. | character_set_database   | latin1                                        |

  8. | character_set_filesystem | binary                                        |

  9. | character_set_results    | utf8                                          |

  10. | character_set_server     | latin1                                        |

  11. | character_set_system     | utf8                                          |

  12. | character_sets_dir       | d:\wamp\bin\mysql\mysql5.5.20\share\charsets\

从上面可以看到,除了| character_set_database   | latin1 和character_set_server     | latin1     两项为latin1编码其他都为utf8编码,这里导致client和server的编码不一致了,插入数据依然中文会乱码

解决方法:

[mysqld]在下面添加:character_set_server=utf8,然后从新启动

[mysqld]

port=3306

character_set_server=utf8

#default-character-set=utf8


使用如下命令

mysql> show variables like 'character%';

+--------------------------+-----------------------------------------------+

| Variable_name            | Value                                         |

+--------------------------+-----------------------------------------------+

| character_set_client     | utf8                                          |

| character_set_connection | utf8                                          |

| character_set_database   | utf8                                          |

| character_set_filesystem | binary                                        |

| character_set_results    | utf8                                          |

| character_set_server     | utf8                                          |

| character_set_system     | utf8                                          |

| character_sets_dir       | d:\wamp\bin\mysql\mysql5.5.20\share\charsets\ |

+--------------------------+-----------------------------------------------

这里可以看到所有的编码都一致了,就不会乱码了

  |

| f512ebc1-e587-4baf-bd17-42e27236621f | ???    | female | 2017-02-24 | 119       | jzz@itheima.com | ??,??,?java      | VIP  | ??          |

之前出入的中文乱。下面为修改之后的结果

| ff1355cb-b25c-4431-8f96-7f56875b582f | 刘备       | female | 2017-02-24 | 119       | jzz@itheima.com | 吃饭,睡觉,学java        | VIP  | 美女           |

在命令提示中默认为gbk编码,要想不乱码显示,在使用查询语句时使用set names gbk

对于以上关于java写入mysql数据库出现乱码怎么处理,如果大家还有更多需要了解的可以持续关注我们的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。

 

相关内容

热门资讯

马斯克:地球最强硬件公司仅Sp... 快科技8月5日消息,北京时间8月5日,SpaceX召开2026年第二季度财报电话会议。 SpaceX...
原创 一... 韦布空间望远镜对海王星的卫星和星环进行的新观测,揭示了太阳系边缘这颗行星在数十亿年前经历的一场灾难。...
声网联合爱芯元智推出机器人实时... 近日,声网与全球领先的AI系统芯片(SoC)供应商爱芯元智联合宣布,基于爱芯元智 AX8850N S...
巴西总统:美国撤销驻美大使签证... 当地时间5日上午,巴西总统卢拉在官邸接受采访时表示,美国政府撤销巴西驻美大使签证的决定“不负责任、考...
汉艺精密取得一种直线导轨专利,... 国家知识产权局信息显示,东莞市汉艺精密机械有限公司取得一项名为“一种直线导轨”的专利,授权公告号CN...
40余名台湾青年在闽研学AI电... 漳州8月5日电 (记者 张金川)8月5日,40余名台湾青年在福建省漳州市云霄县圆满结束了他们为期五天...
AI智能体能替你谈判账单吗?实... 用AI来协商经常性账单的费率,是那种永远排在待办清单末尾的琐事。即便每年费用都在上涨,大多数人还是选...
陕西柞水遭遇大暴雨,五千余户群... 8月5日7时至15时,陕西省商洛市柞水县出现大到暴雨、局地大暴雨,杏坪社区地质站最大降雨量135.4...
伊朗与阿曼会谈最新细节曝光 美国有线电视新闻网(CNN)8月5日报道,伊朗和阿曼将敲定一项关于通过霍尔木兹海峡进行商业航运的框架...
大科学装置建设全面提速 创新成... 央视网消息(新闻联播):重大科技基础设施是建设科技强国的利器。今年以来,我国大科学装置建设全面提速,...