最近时常碰到中文乱码的问题,eclipse的编码环境设置的都是UTF-8,外部也是以UTF-8的编码进行传参的,但是遇到中文的时候还是因为乱码而产生一系列的错误。在网上查了许多资料,发现这是跟JVM的编码有关系的,JVM默认引用电脑操作系统的编码格式进行编码(大部分中文win xp系统的编码格式是GBK),所以JVM把java编译成class文件的时候会以GBK的方式进行编译。于是乎你会发现,有的机器运行工程会始终有乱码,有的机器则不会
获取JVM编码:
import java.nio.charset.Charset; public class TestCharset { public static void main(String[] args) { System.out.println("JRE Version:" + System.getProperty("java.version")); System.out.println("JVM code:" + Charset.defaultCharset()); } }
j2se设置jvm encoding的地方:
j2ee设置encoding: