IDEA控制台 & 页面乱码
最近和小伙伴使用gitee协同开发,由于tomcat编码格式不同(我的tomcat配置GBK,他们是UTF-8),导致不是在我的电脑上运行乱码,就在他们电脑上运行乱码。
这里试了以下这些方法,中文可以部分显示(大多数中文能显示就行了,要啥自行车)
参考
- 如何使用Java代码将GBK编码格式的工程转换为UTF-8编码格式的工程
对于上面这种方法,在协作开发时一定要慎用。因为如果你重新修改了代码的编码格式,git会显示这些代码搞不好别人提交的代码 - tomcat中server.xml配置编码格式
- IDEA控制台中文乱码解决
对于第一种方法,在协作开发时一定要慎用。因为如果你重新修改了src文件夹下的代码编码格式,git会显示这些代码与原来版本存在不同,而别人的代码如果和你使用的编码不同,在push
或pull
中,项目整合到一起会出现莫名其妙的报错,项目之前还好好的,现在整合后就会运行不起来。
不得不将别人修改过的代码文件放在我的电脑重新整合(还好团队人不多,只有三人),如果大佬们有更好的整合方式,请麻烦告诉小弟,我被这乱码整怕了。。。
2020.12.2更新
如果web项目页面也出现乱码,可以在IDEA的encoding.xml
中配置项目的编码格式
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/WebRoot/JS/button/datadriven/validate_BOOST.js" charset="GBK" />
<file url="file://$PROJECT_DIR$/WebRoot/JS/button/datadriven/validate_KNN.js" charset="GBK" />
<file url="file://$PROJECT_DIR$/src" charset="UTF-8" />
</component>
</project>
如果上面的方法也无效的话,看看是不是哪个java类编码格式错了,自己找对了编码出错的源码文件没有。
如果部分源码为GBK格式,部分源码为utf-8的格式,但在最终运行项目时用的是UTF-8编码(IDEA中在encoding.xml
配置),这样就会导致部分对象在输出时就会存在乱码。
解决方法是(假设要修改的文件编码是GBK):
- 方法1:debug找出编码出错的源码的位置,在IDEA的encoding.xml中修改对这些文件的编码形式。
- 方法2:debug找出编码出错的源码的位置,在IDEA中先reload GBK进行解码,再用convert utf-8其进行重新编码。(千万别直接convert utf-8,这会导致连续编码两次)