设置Java JDK的默认编码为UTF-8
2016-05-05 11:06
429 查看
首先,在网上找了一段程序来查看自己当前系统的默认编码:
如图,由于我的系统是中文语言的,得到的是GBK编码,实际上可以在运行程序时给它指定编码,用-Dfile.encoding=UTF-8参数即可,但在某些时候,运行Java程序不是由我们人为控制的,例如我在使用BalckBerry WebWorks SDK时用bbwp时无法在它调用Java时给它指定encoding参数,于是杯具就产生了,出现了一大堆带问号的错误,显然是编码的问题,这种情况下,就只能设全局变量来改变encoding了。Java官方文档有提到可以在系统变量中设置JAVA_TOOL_OPTIONS来指定运行Java程序时附带的一些参数,即每次运行Java程序时都会将这些参数附加进去,参考原文:http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html#tooloptions那么,现在就可以在系统环境变量中增加一个变量,变量名为: JAVA_TOOL_OPTIONS, 变量值为:-Dfile.encoding=UTF-8,保存,重新打开命令提示符,现在,再运行一次刚刚的程序,得到结果:
现在显示为UTF-8编码了,注意红色方框部分,每次执行时都会先出现这些参数,在这里我还加了两个参数,改变了默认的语言和时区,因为我发现改了编码为UTF-8后,出现的Java提示如java -help之类的都会变成乱码,所以把它改成英文的提示了。
import java.io.ByteArrayOutputStream; import java.io.OutputStreamWriter; import java.nio.charset.Charset; class Test { public static void main(String[] args) { System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("Default Charset in Use=" + getDefaultCharSet()); } private static String getDefaultCharSet() { OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream()); String enc = writer.getEncoding(); return enc; } }结果显示为:
如图,由于我的系统是中文语言的,得到的是GBK编码,实际上可以在运行程序时给它指定编码,用-Dfile.encoding=UTF-8参数即可,但在某些时候,运行Java程序不是由我们人为控制的,例如我在使用BalckBerry WebWorks SDK时用bbwp时无法在它调用Java时给它指定encoding参数,于是杯具就产生了,出现了一大堆带问号的错误,显然是编码的问题,这种情况下,就只能设全局变量来改变encoding了。Java官方文档有提到可以在系统变量中设置JAVA_TOOL_OPTIONS来指定运行Java程序时附带的一些参数,即每次运行Java程序时都会将这些参数附加进去,参考原文:http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html#tooloptions那么,现在就可以在系统环境变量中增加一个变量,变量名为: JAVA_TOOL_OPTIONS, 变量值为:-Dfile.encoding=UTF-8,保存,重新打开命令提示符,现在,再运行一次刚刚的程序,得到结果:
现在显示为UTF-8编码了,注意红色方框部分,每次执行时都会先出现这些参数,在这里我还加了两个参数,改变了默认的语言和时区,因为我发现改了编码为UTF-8后,出现的Java提示如java -help之类的都会变成乱码,所以把它改成英文的提示了。
相关文章推荐
- Struts2 面试题分析
- Java生产者消费者问题
- 单例模式的实现方式
- java中的private到底有什么用 ;private特点;
- Java里子类调用父类构造方法问题
- Eclipse+CXF框架开发Web服务实战
- 关于eclipse导入jar包无法查看源码解决方法
- java 数组之间的转换
- Eclipse安装插件安装方式(以SVN插件安装为例)
- spring的MultiActionController
- spring框架结构介绍
- Intellij IDEA, Android Studio, Eclipse,Gradle, Maven, Ants关系概述
- java中nextLine()和next()的区别
- Java 线程thread1
- Java关键字static
- Java中int转String 和 String转int 各方法效率对比
- 学习记录 Eclipse常用快捷键及其演练
- 遇到的问题----java--myeclipse部署时An internal error occurred NullPointException错误
- 遇到的问题----java--myeclipse部署时An internal error occurred NullPointException错误
- (java)解决文件是中文名打包成zip文件名称乱码的问题。