java String 数据类型的编码方式

1.java String由char组成,从String中的函数CharAt(int index)便可知

2.String类中存放的是UNICODE编码,每个Char是16位,一个Char可能是传统的ASCII字符,也可能是一个汉字,在内存中都 是占据两个字节

3.String类和Byte[]之间的关系

        String s = new String("霜之哀伤");


byte[] array1 = s.getBytes("utf-8");
byte[] array2 = s.getBytes("gbk");
byte[] array3 = s.getBytes("unicode");
byte[] array4 = s.getBytes();// 默认是GBK


printBytes(array1);
printBytes(array2);
printBytes(array3);
printBytes(array4);

程序输出:

0xE9 0x9C 0x9C 0xE4 0xB9 0x8B 0xE5 0x93 0x80 0xE4 0xBC 0xA4
0xCB 0xAA 0xD6 0xAE 0xB0 0xA7 0xC9 0xCB
0xFE 0xFF 0x97 0x1C 0x4E 0x4B 0x54 0xC0 0x4F 0x24
0xCB 0xAA 0xD6 0xAE 0xB0 0xA7 0xC9 0xCB

我认为在String里面的中文是以UNICODE的方式进行存储,根据不同的编码方式,返回不同的byte数组。

而对于给定的一个byte buffer,我们也可以不同的编码方式进行解析,如String s=new String(buffer,"utf-8");

从而对于不同格式的文本文件,我们以二进制的方式读入,然后以自定义的编码格式显示,如果编码格式匹配就能正确显示文本内容。


转自: http://blog.csdn.net/wuyanqing_2006/archive/2009/07/26/4382362.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值