charset 是 16 位 Unicode 字符序列和
字节序列之间的命名映射关系,从某种意义上来说,在 RFC 2278 中对其进行了定义。解码器 是把一个特定 charset 中的字节转换成
字符的引擎,编码器 是把字符转换成字节的引擎。编码器和解码器在
字节和字符缓冲区上操作。它们共同被称为 coder。
Charset 类定义了为给定的 charset 创建 coder 的方法和检索与某个 charset 相关的名称的方法。它还定义了用于测试是否支持特定 charset 的
静态方法、通过名称查找 charset 实例的静态方法,以及构造一个包含目前 Java
虚拟机支持的每个 charset 的映射静态方法。
大多数用户不直接使用这些类;他们使用 String 类中存在的和 charset 有关的
构造方法和方法,一起使用的还有 InputStreamReader 和 OutputStreamWriter 类,为了利用此包中定义的 charset 设施,所有这些类的实现都被重写。为了在构造这些类的实例时显式地指定 charset 对象,已经对 InputStreamReader 和 OutputStreamWriter 类做了一些更改。
通过在
java.nio.charset.spi 包中的 CharsetProvider 类中定义的接口,可提供对新 charset 的支持。