今天在敲课本上的JavaBean例子的时候出现了乱码问题,查了一些方法总算解决了这个问题
public String getTime() {
try {
time=new String(time.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
}
catch (Exception ignored) {}
return time;
}
归纳为几点:
解决方法是在.java文件中的get方法里面额外加一个字符串编码处理过程
形成乱码的原因是:Tomcat默认用iso-8859-1进行解码,而所有交过去的数据是utf-8编码,编码不同于是出现乱码情况。
在写new String()语句时要注意:
- 传入参数是两个字符集:ISO-8859-1和UTF-8
- 实测需要导入StandardCharsets才能行,直接写这两个字符集语法虽然没错但是还是会乱码
-
导入StandardCharsets:
import java.nio.charset.StandardCharsets;
ISO-8859-1表示方式:StandardCharsets.ISO_8859_1
UTF-8表示方式:StandardCharsets.UTF_8
参考:链接