JVM默认字符集问题

来源:互联网 发布:索尼官方授权店淘宝 编辑:程序博客网 时间:2024/05/02 03:06
  1. 获取JVM默认字符集:System.getProperty("file.encoding")
    public class Test {public static void main(String[] args) {System.out.println(System.getProperty("file.encoding"));}}
  2. 获取中文字符的长度不同
    public class Test {public static void main(String[] args) {System.out.println("测".getBytes(Charset.forName("UTF-8")).length);//结果:3System.out.println("测".getBytes(Charset.forName("GBK")).length);//结果:2}}
  3. 经过以上的测试得出普遍一个结果:Xp系统安装Tomcat获取默认字符集为GBK,Linux根据语言不同而不同一般从Windows下面移植过来的系统容易出现乱码(测试方法可以新建一个charset.jsp,加入如下内容)。
    <%=System.getProperty("file.encoding")%>
  4. 统一JVM字符集的方法有两种:一种是在编码的过程中在需要指定字符集的时候,使用统一的字符集,如getBytes("GBK")等等;第二种,在Tomcat启动过程中指定JAVA_OPTS参数"-Dfile.encoding=UTF-8"
    JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"