Java默认字符编码
来源:互联网 发布:浙江省高等教育网络 编辑:程序博客网 时间:2024/06/04 18:39
大家都说java使用的字符集是unicode,那么默认编码不就是应该是UTF8,UTF16之类的unicode编码吗?
可是调用Charset.defaultCharset()的结果并非如此。
- import java.nio.charset.Charset;
- public class javaCode {
- public static void main(String args[])
- {
- String defaultCharsetName=Charset.defaultCharset().displayName();
- System.out.println("defaultCharsetName:"+defaultCharsetName);
- }
- }
执行结果如下
defaultCharsetName:GBK
多次试验发现,这个默认字符编码是由windows的语言地域里的设定决定的
这个字符编码肯定不是java内部的字符编码,那会不会是文件读入时的字符编码?
先用Emeditor之类的编辑器,生成一个UTF8的txt文件,输入内容:門(door),保存。
用下面的代码读入
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.nio.charset.Charset;
- public class javaCode {
- public static void main(String args[])
- {
- String defaultCharsetName=Charset.defaultCharset().displayName();
- System.out.println("defaultCharsetName:"+defaultCharsetName);
- try {
- InputStream is = new FileInputStream("F://shifjst.txt");
- //等于 InputStreamReader streamReader = new InputStreamReader(is,Charset.defaultCharset());
- InputStreamReader streamReader = new InputStreamReader(is);
- char[] chars = new char[10];
- streamReader.read(chars, 0, 10);
- System.out.println(chars);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
结果是乱码:
defaultCharsetName:windows-31j
髢?door)
再把那个文件的格式改成shift-jis,正确读出来了。
defaultCharsetName:windows-31j
門(door)
看来,java读入文件时的字符编码是根据系统的默认编码来的。
- Java默认字符编码
- JAVA的默认字符编码
- JAVA的默认字符编码
- 关于java中默认字符编码问题
- Java默认字符编码与Windows系统语言设置
- Java中String类型与默认字符编码
- python设置默认字符编码
- mysql修改默认字符编码
- python默认字符编码问题
- Oracle修改默认字符编码
- mysql修改默认字符编码
- 修改数据库默认字符编码
- 中文操作系统默认编码与Java中文编码字符丢失问题
- 修改Debain默认的字符编码
- 获取本地操作系统的默认字符编码
- 改变MyEclipse中的默认字符编码
- 获得系统的默认字符编码
- MySQL默认字符编码的设置
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法【已验证
- 投影空间坐标与屏幕的对应关系
- Android Power management
- IOS VIEW截图并保存为PNG的方法
- 在Linux下怎么看网络流量
- Java默认字符编码
- Android中清楚Cookie和WebView的缓存
- Oracle的分析函数(解析函数)说明
- AIDL详解
- 学习了c# 建立网站、发布网站、
- oracle的sql的select语句中的limit
- 炫彩生活教您专卖店促销技巧
- C语言宏定义中的#,##,#@及\符号的作用
- lotus--java代理中怎么解析文件