[踩坑记录]SSM项目出现乱码问题排错记录,前后端都没问题 依旧存在乱码 乱码问题解决 mysql 乱码 数据库乱码 SSM项目乱码
请忽略标题那一堆乱七八糟的文字哈,那是为了方便刚入门的新手或菜鸟搜索到相同问题加上的关键词
前情提要:
最近宅在家里复习SSM,准备春招,写了个小项目练手 不巧就遇到了一个挺容易让人忽略的问题。
遇到的问题:
为什么这里插入的中文都会变成乱码呢?究竟是前端的问题还是后端的问题?
于是我带着疑问对代码进行了第一遍检查
后端情况:
不对啊,后端编码过滤器我早就配置好了呀,怎么还是有乱码,那我就去看看前端吧
前端情况:
嗯?前端也没问题? 那我看看服务器日志吧
服务器日志:
什么?服务器接收到的参数居然没有乱码??那我去检查下数据库吧
数据库情况:
嗯? 问题好像发现了,就是数据库的问题
那么我们先往数据库里手动插入一个中文值试一下
哎呦 果真报错了 在查询了相关资料后发现问题所在
问题原因1:
原因是创建mysql数据库的时候没有仔细看,使用了mysql的默认字符集latin1,将他们修改为utf8之后就可以了。
一波未平一波又起:
现在数据库中插入的中文字符能够正常显示,那么为什么我在网页中提交表单的值到了数据库中仍然是乱码呢?
在好一通检查之后发现,用惯了oracle的我,在写mysql连接url的时候犯的一个错误导致了这个问题。
问题根源:
数据库连接时忘记添加characterEncoding参数,因而在持久化时会把项目并不知道用什么格式与数据库进行交流。