java jvm defaultCharset问题
来源:互联网 发布:tcp端口号 不够 编辑:程序博客网 时间:2024/06/06 01:06
一、问题描述
在写代码的时候,读取字节流的时候,一般需要转化成 字符串,此时就涉及到编码问题。一般文件是用啥 编码 存的,取的时候就用 此编码读取。 在写读的时候,一般建议指定编码。BufferedReader br = new BufferedReader(new InputStreamReader(is));最好写成BufferedReader br = new BufferedReader(new InputStreamReader(is,encoding));encoding一般需要猜测文件的编码。嘿嘿。。。。【如果没有指定编码,系统是如何读取编码的呢?】
http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/charset/Charset.html#defaultCharset()defaultCharset是默认编码,依赖于本地。(可以如此来指定:-Dfile.encoding=GBK)
【如果 也没有用-Dfile.encoding指定呢?】
则会依赖于locate时区文档:http://java.sun.com/developer/technicalArticles/J2SE/locale/
二、总结系统的代码如下:【请用openjdk查看Charset类,大约580行】源码:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/nio/charset/Charset.java#Charsetprivate static volatile Charset defaultCharset;/*** Returns the default charset of this Java virtual machine.** <p> The default charset is determined during virtual-machine startup and* typically depends upon the locale and charset of the underlying* operating system.** @return A charset object for the default charset** @since 1.5*/public static Charset defaultCharset() {if (defaultCharset == null) {synchronized (Charset.class) {String csn = AccessController.doPrivileged(new GetPropertyAction("file.encoding"));Charset cs = lookup(csn);if (cs != null)defaultCharset = cs;elsedefaultCharset = forName("UTF-8");}}return defaultCharset;}【我们经常使用IDE eclipse ,对defaultCharset有啥影响呢?】此是以General ->Workspace中的text File encoding 可以设置全部的编码。单个文件可以单独设置。 当在eclipse运行代码时,是以 运行的此文件为准的。
1、-Dfile.encoding=GBK 指定defaultCharset。
2、如果没有指定,系统会根据时区、操作系统的相关信息来获取。
3、eclipse中需要注意文件的编码。
- java jvm defaultCharset问题
- apache关于defaultcharset的设置和优先级的问题
- Java JVM:内存溢出问题
- Java JVM:垃圾回收问题
- Java JVM:内存溢出问题
- Java JVM:垃圾回收问题
- JAVA编程中默认字符编码格式修改方法——Charset.defaultCharset()
- 改变Charset.defaultCharset()
- 设置Java虚拟机(JVM)的内存问题
- Java JVM(三):内存溢出问题
- java编译器编码和JVM编码问题?
- -Dfile.encoding与Charset.defaultCharset
- Charset.defaultCharset()由什么决定
- Charset.defaultCharset()由什么决定
- Charset.defaultCharset()由什么决定
- 【Java】【JVM】JVM参数
- 【Java】【JVM】JVM参数
- java heap space 问题(java的jvm内存超出)
- 一个linux UDP网络通讯的例子源代码(server、client方式)
- android Theme使用总结
- fedora 16安装gnochm阅读器
- 伪静态和静态混合设置出错,没有为扩展名.html
- Watched Ones
- java jvm defaultCharset问题
- 枚举如何使用?有什么用处? enum
- Linux内核源代码的阅读和工具介绍
- 103、Pro C 连接Oracle数据库和问题解决
- Oracle实例内存(SGA和PGA)调整(转载)
- red btn
- 域名加www与不加www的区别及301重定向的方法
- java集合类结构图
- 在线工具--把C#代码转换成VB.NET代码