谢邀。没有很注意过,不过idea有默认编码设置,应该都是依照默认编码进行编制的,我记得默认都是utf8。
gbk格式的class,有中文的话在设置为utf8形式载入,会出现乱码。
可能是编码不一致导致的,但是需要更具体的说明,maven在什么时候,控制台出现乱码。因为Dfile.encoding是给JVM的参数,告诉他需要使用的编码,看起来是maven默认使用的编码和实际上的编码不一致。
记事本创建文件然后保存,会发生编码,再重新打开,会发生解码。
编码就是把字符的矢量图形和某个二进制编码一一对应,GB2312是对原始编码的扩充,也是GBK的前身,他只收录了简体汉字,GBK编码和GB2312相比,增加了汉字以及一些中文符号,少数民族文字,日韩文字的编码,GB18030是相对GBK更加全面的中文字符集。
至于字符和编码是怎么对应的呢?例如:数字48的二进制对应到字符0,这个关系记载在一个编码表中,这个编码表就是编码的依据,乱码出现的原因是一个字符的编码的码表和解码的码表不一致,导致同一个编码值不能和他应该的字符对应起来,因此表现为无意义的乱码。
在文字处理的工具保存文件的时候,就会把文本按照某种编码方式存储为编码后的数据,解码的时候需要根据对应的编码方式读取,就可以展示出正确的文本内容。
这里有一点值得注意的是:GBK兼容GB2312,GB18030兼容BGK和GB2312,因此GB2312编码可以使用GBK方式和GB2312方式,GB18030解码,同样,GBK也支持GB18030方式解码,不过GB这些编码和UTF8不兼容,因此会有乱码。
兼容是怎么回事呢?简单来说,就是码表在对应关系上是一致的,GBK包含GB2312的对应关系,因此GB2312可以使用GBK解码,而不会导致乱码问题,但是UTF8就不一样了。
以上。
另外,idea对maven支持十分友好,导入maven依赖之后可以直接使用idea启动,而不是通过maven的命令行。