Java字符串编码与解码

       Java.nio.包用Charset类统一对字符集进行转换。字符集建立了两个Unicode码元序列与使用本地字符编码方式的字节序列之间的映射。可以通过调用静态的forName方法来获得一个Charset,只需要向这个方法传递一个官方字符集名字或它的别名:Charset cset=Charset.forName("UTF-8");当本地编码方式模式不能表示所有的Unicode字符,如果某个字符不能表示,它将被转换成?。

        可以使用Unicode码元的java字符串和编码而成的字节序列之间进行转换。下面是如何编码Java字符串的代码:

Charset cset=Charset.forName("GBK");
String str="this is java String,这是Java字符串";
ByteBuffer buffer=cset.encode(str);
byte[] bytes=buffer.array();
与之相反,想要解码字节序列,需要有字节缓冲区。使用ByteBuffer数组的静态方法wrap可以将一个字节数组转换成一个字节缓冲区。decode方法的结果是一个CharBuffer,调用它的toString方法可以得到一个字符串。下面是解码的代码:
ByteBuffer bbuf=ByteBuffer.wrap(bytes,0,bytes.length);
CharBuffer cbuf=cset.decode(bbuf);
String str2=cbuf.toString();
System.out.println(str2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值