Java中的Charset字符集

Java中的Charset字符集

java.nio.charset包中提供了Charset类,它继承了Comparable接口;还有CharsetDecoder、CharsetEncoder编码和解码的类,它们都是继承Object类。

Java中的字符使用Unicode编码,每个字符占用两个字节,16个二进制位,向ByteBuffer中存放数据的时候需要考虑字符的编码,从中读取的时候也需要考虑字符的编码方式,也就是编码和解码。

1、获取字符集有如下两种方式

//返回指定的字符集CharSet

Charset charset = Charset.forName("utf8");

//返回虚拟机默认的字符集CharSet

Charset charset = Charset.defaultCharset();

2、使用字符集CharSet创建一个编码器和一个解码器

//编码器

CharsetEncoder encoder = charset.newEncoder();

//解码器

CharsetDecoder decoder = charset.newDecoder();

3、使用编码器和解码器解析数据

//编码,传入CharBuffer

ByteBuffer bytebuffer = encoder.encode(in);

//解码,传入ByteBuffer

CharBuffer charbuffer = decoder.decode(in);

4、具体使用案例

public static void main(String[] args) {

Charset charset = Charset.forName("utf8");

System.out.println(charset.name()+"--"+charset.canEncode());

//返回一个包含该字符的别名,字符集的别名是不可变的

Set set = charset.aliases();

Iterator it = set.iterator();

while(it.hasNext()) {

System.out.println(it.next());

}

System.out.println("----------编码----------------");

ByteBuffer buffer = charset.encode("sdf");

System.out.println(buffer);

System.out.println("缓冲区剩余的元素数--"+buffer.remaining());

while(buffer.hasRemaining()) {

System.out.println((char)buffer.get());

}

System.out.println("缓冲区剩余的元素数--"+buffer.remaining());

System.out.println("----------解码----------------");

//清空缓冲区,将限制设置恢复,如果定义了标记,则将它们丢弃

buffer.flip();

}

相关数据

除了二狗、青藤,还有什么交友软件比较靠谱?
beat365体育亚洲网址

除了二狗、青藤,还有什么交友软件比较靠谱?

⌛ 07-02 👁️ 6679
PPT声音怎么取消?如何停止播放声音?
365bet是合法的

PPT声音怎么取消?如何停止播放声音?

⌛ 08-13 👁️ 9759
覃怎么读
365health

覃怎么读

⌛ 09-11 👁️ 483