1.直接上代码

import java.nio.charset.Charset;


/**
 * 获取当前虚拟机的默认字符集 Charset.defaultCharset() 或 System.getProperty("file.encoding")
 * Charset.defaultCharset()底层代码也是通过调用 System.getProperty("file.encoding") 实现
 * 

 * 1.只有通过传递 jvm 参数的方式来默认编码(jvm启动时生效,不可更改) == 后续变更无效 
 * 2.此系统属性正确叫法:来自于java.nio.charset.Charset.defaultCharset()注释 
 * 英文:the default charset of this Java virtual machine 
 * 中文:此 Java 虚拟机的默认 charset 
 * 3.jvm参数指定方式为:java -Dfile.encoding=xxx  * 4.如果是在eclipse中运行main方法,设置参见文中图2。  * 

 *   * @author yuxiangtong  *  */ public class Test {     public static void main(String[] args) {         String encoding = System.getProperty("file.encoding");         System.out.println("file.encoding :" + encoding); // UTF-8         System.out.println(                 "此 Java 虚拟机的默认 charset :" + Charset.defaultCharset().name()); // UTF-8         /* 尝试重置 file.encoding */         encoding = System.setProperty("file.encoding", "GBK");         /* 重置失败,依然是默认的UTF-8 */         System.out.println(encoding); // UTF-8         /* 尝试获取测试属性 */         System.out.println(System.getProperty("testkey")); // null         System.setProperty("testkey", "张三");         System.out.println(System.getProperty("testkey")); // 张三         System.out.println("张三".getBytes().length); // 6     } }


2. 图2如下

Java获取默认字符集-知识梳理_第1张图片


3.DOS下命令行提示信息:

C:\Users>java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

C:\Users>java
用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32          使用 32 位数据模型 (如果可用)
    -d64          使用 64 位数据模型 (如果可用)
    -server       选择 "server" VM
                  默认 VM 是 server.

    -cp <目录和 zip/jar 文件的类搜索路径>
    -classpath <目录和 zip/jar 文件的类搜索路径>
                  用 ; 分隔的目录, JAR 档案
                  和 ZIP 档案列表, 用于搜索类文件。
    -D<名称>=<值>
                  设置系统属性
    -verbose:[class|gc|jni]
                  启用详细输出
    -version      输出产品版本并退出
    -version:<值>
                  警告: 此功能已过时, 将在
                  未来发行版中删除。
                  需要指定的版本才能运行
    -showversion  输出产品版本并继续
    -jre-restrict-search | -no-jre-restrict-search
                  警告: 此功能已过时, 将在
                  未来发行版中删除。
                  在版本搜索中包括/排除用户专用 JRE
    -? -help      输出此帮助消息
    -X            输出非标准选项的帮助
    -ea[:...|:]
    -enableassertions[:...|:]
                  按指定的粒度启用断言
    -da[:...|:]
    -disableassertions[:...|:]
                  禁用具有指定粒度的断言
    -esa | -enablesystemassertions
                  启用系统断言
    -dsa | -disablesystemassertions
                  禁用系统断言
    -agentlib:[=<选项>]
                  加载本机代理库 , 例如 -agentlib:hprof
                  另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
    -agentpath:[=<选项>]
                  按完整路径名加载本机代理库
    -javaagent:[=<选项>]
                  加载 Java 编程语言代理, 请参阅 java.lang.instrument
    -splash:
                  使用指定的图像显示启动屏幕
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。