乱码问题可以说是很常见的问题了,但也很考验耐心,只要细心点,都不是问题。
调试一个servlet接口,本来新建的是GBK的工程,后来需要全部转成UTF-8,用eclipse插件转好后,打成jar包运行
输出的中文日志和响应中文请求都是乱码,
首先查看设置了java源文件的编码格式,无效
再设置了servlet的响应编码格式
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
后,问题还是存在;
修改web容器运行时的编码格式,
-Dfile.encoding=utf-8
一样无效,
后来反编译class文件,发现编译后的中文就是乱码了,至此确认编译时的编码出现问题。
修改maven编译时的编码格式
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
重新编译打包,运行 正常。