Java获取默认字符集-知识梳理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java获取默认字符集-知识梳理相关的知识,希望对你有一定的参考价值。
1.直接上代码
import java.nio.charset.Charset; /** * 获取当前虚拟机的默认字符集 Charset.defaultCharset() 或 System.getProperty("file.encoding") * Charset.defaultCharset()底层代码也是通过调用 System.getProperty("file.encoding") 实现 * <p> * 1.只有通过传递 jvm 参数的方式来默认编码(jvm启动时生效,不可更改) == 后续变更无效 <br/> * 2.此系统属性正确叫法:来自于java.nio.charset.Charset.defaultCharset()注释 <br/> * 英文:the default charset of this Java virtual machine <br/> * 中文:此 Java 虚拟机的默认 charset <br/> * 3.jvm参数指定方式为:java -Dfile.encoding=xxx * 4.如果是在eclipse中运行main方法,设置参见文中图2。 * </p> * * @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如下
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[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] 按指定的粒度启用断言 -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] 禁用具有指定粒度的断言 -esa | -enablesystemassertions 启用系统断言 -dsa | -disablesystemassertions 禁用系统断言 -agentlib:<libname>[=<选项>] 加载本机代理库 <libname>, 例如 -agentlib:hprof 另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help -agentpath:<pathname>[=<选项>] 按完整路径名加载本机代理库 -javaagent:<jarpath>[=<选项>] 加载 Java 编程语言代理, 请参阅 java.lang.instrument -splash:<imagepath> 使用指定的图像显示启动屏幕 有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
本文出自 “我的技术博客” 博客,请务必保留此出处http://programmer.blog.51cto.com/2859493/1880248
以上是关于Java获取默认字符集-知识梳理的主要内容,如果未能解决你的问题,请参考以下文章