今天在写程序时遇到了一个乱码问题,困扰了好久,事情是这样的,
在Mapper层编写了查询语句,然后服务处调用,结果控制器返回一堆乱码
然后查看数据源头处:
由重新更改解码的字符集,在数据库中是正常显示的中文字符
数据库的编码集也是utf8
idea中相应的解码都是utf8
那为什么还会出现乱码呢?
出现这种状况的都是从外部导入文件的,可能不同文件的编码解码字符集不一样。如下图
上面txt文件可以看到右下角为utf-8编码,但是用excel打开就乱码了
或者相反的情况,这里要注意的是乱码后不可以随便在保存,然会会都是字符集,导致两边都乱码,具体的解决方案是在能打开一方文中文是打开后另存为utf-8编码。如下:
- 用Excel打开为中文时
选择Web选项,更改编码为UTF-8
此时中文就会解码为utf-8,在用其他软件打开时选择用utf-8编码即可。
- 记事本打开为中文
另存为时将编码改为utf-8即可。
注意在一方打开为乱码时一定不要另存为除非你知道起编码方式。
经过上面步骤后已经确定编码的方式了,如果时记事本保存的excel打开一般会乱码不用管,打开数据库管理工具
导入csv或txt都可以,之后编码方式选为utf-8即可。