关于MySQL数据库中的中文乱码

关于MySQL数据库中的中文乱码

http://img1.sycdn.imooc.com//climg/5e75a55a08877cfe07090210.jpg

插入中文数据到数据库中之后出现了中文乱码,可能是什么原因呢,上图是数据库中的编码方式

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好!

应该是你的页面在传递给后台的时候就乱码了,建议你添加编码过滤器,可以参考oa项目的代码

http://img1.sycdn.imooc.com//climg/5e7882510986f3eb09350538.jpg

http://img1.sycdn.imooc.com//climg/5e78823a09c75d3506510331.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 慕后端2033046 提问者 #1
    谢谢老师了,我已经知道哪里出问题了,其实这个我是配置了的。但是url-pattern写的是/没有加星号。 说实话我一直还以为这两个都差不多的。对于这个我还专门到网上查了一下,好像是说只写/的话就不能够过滤到像.jsp 这样的非静态文件。那么如果真的是这个原因的话,之前的中文乱码出错可以理解为在重定向到.jsp文件的时候没有设置它的编码导致的吗?
    2020-03-23 19:00:46
  • 好帮手慕柯南 回复 提问者 慕后端2033046 #2
    同学你好,编码过滤器要写为/*,否则对页面的编码是不起作用的。祝学习愉快~
    2020-03-23 20:09:30
提问者 慕后端2033046 2020-03-23 15:38:39
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/bbs?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>
老师我在MySQL中已经设置好了字符集,并且直接在MySQL命令行中插入中文数据也没问题。但是通过在
jsp页面上进行中文数据的插入就出现乱码了,并且这个数据在MySQL命令行中用select查询也是乱码。
也不知道是哪里出了问题。上面是我的数据源的配置。


好帮手慕柯南 2020-03-21 16:11:09

同学你好!
建议你将以下信息改为uft8,比如:set character_set_server=utf8

http://img1.sycdn.imooc.com//climg/5e75cbbb09183b6005730174.jpg

连接数据库的url指定编码:

http://img1.sycdn.imooc.com//climg/5e75cc0c090a9ec705300066.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 慕后端2033046 #1
    老师如果把这三项都改成utf8的话中文字是出来了,但是字已经不是原来的插入数据的那个中文字了。 看网上说是由于数据在命令行中插入的时候字符是GBK但是将这些显示字符都改为utf8之后,GBK与utf8转换之后导致已经不是原来的中文了。我不知道是不是这样子的呢。老师觉得是什么原因呢
    2020-03-22 16:09:09
  • 好帮手慕柯南 回复 提问者 慕后端2033046 #2
    同学你好,这种说法是正确的,你之前使用gbk编码的数据会出现问题。你重新插入一下就可以了。祝学习愉快~
    2020-03-22 17:20:12
  • 提问者 慕后端2033046 回复 好帮手慕柯南 #3
    老师看上面回答的地方
    2020-03-23 15:39:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师