最近在学习JavaWeb,写了一个后台管理系统,但出现了服务器向数据库存入数据中文乱码的情况,下面分享一下本人的解决方案,希望对大家能有帮助。
使用的ide是intelliJ IDEA,数据库为mysql,图形化数据库管理工具是Sequel Pro(免费的,亲测很好用),服务器是Tomcat。
最开始在做CRUD的时候,先在数据库中存好数据,然后通过服务器访问没有出现任何问题,如下
但做到通过由服务器向数据库添加数据是出现了中文变成问号的问题
本以为是哪里的编码没有改,但找遍了一切设置编码的地方都是utf-8,request和response jsp页面都有声明,IDEA本身编码也是u8,最后把问题确定在数据库身上,发现sequel pro在创建表可能会忽略掉默认编码,可以在这里重新修改
但是!
在修改完成后丫的问号问题还是没有解决,所有能改的地方都改成了u8中文依旧会显示问号,整个人都不好了。。。
最后的最后,通过各种百度,把问题确定在了这里,选中的一栏默认值是Iatin 1,在看名字server,服务器,问题就在这里
接下来开始解决
- 先在设置里停掉mysql,这里需要输入密码
2.在mysql的安装路径下找到叫support-files的文件夹,里面有一个叫my-XX.cnf的文件,将它复制粘贴到etc文件夹下,重命名为my.cnf并用终端打开(拖进去)。
3.然后看一下他的读写权限,在访达中右键文件->显示简介->最下边共享与权限,将第一个和第二个改为读和写
4.然后开始配置文件内容,在终端中路径前面加上vi,如下
回车开始修改配置文件,在文件最上边加入
[client]
default-character-set=utf8
在在[mysqld]下增加
character-set-server=utf8
添加完成后按下esc然后直接输入:wq保存并退出vi编辑(有冒号)回车回到这个界面
就大功告成了。
设置中重启mysql,再回去查看server的字符集就是像上边发的那样的utf-8,数据库和服务器展示的中文也可以正常显示了。
软件工程大二在读,自学的JavaWeb,视频资料是传智播客的,很详细,在b站就可以找得到,也是前不久刚刚入手的mac pro16寸,还没有完全用明白...这个回答也是在网上找了好多资料整合成的,希望能帮到有问题的人(本人萌新,大佬勿喷...)
如果帮到你了记得回来点个赞呀~