java 字符集 Charset

时间:2024-05-14 21:36:44

字符集就是为每个字符编个号码。如ASCII编码中,字符 'A' 的号码为 65 (或二进制01000001);GBK编码中,字符 '国' 对应的号码为47610 。

编码:将字符序列转换成二进制序列。

解码:将二进制序列转换成字符序列。

java 字符集 Charset

java提供Charset类来处理字节序列与字符序列的转换。

Charset类提供 forName()方法创建Charset实例。

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

Charset类提供如下方法用于编码与解码:

        CharBuffer decode(ByteBuffer bb) // 将ByteBuffer中的字节序列转换为字符序列
ByteBuffer encode(CharBuffer cb) // 将CharBuffer中的字符序列转换为字节序列
ByteBuffer encode(String str) // 将String中的字符序列转换为字节序列

示例如下:

        // 创建GBK字符集对象
Charset charset = Charset.forName("GBK");
// 将字符串序列转为字节序列
ByteBuffer byteBuffer = charset.encode("天空sky");
// 将字节序列转为字符序列
CharBuffer charBuffer = charset.decode(byteBuffer);
System.out.println(charBuffer);