为什么没有Java Charset setEncoding方法?

IAm*_*aja 3 java character-encoding

我找到了这个优秀的SO问题,要求区分字符和字符编码.它是有道理的:基本上字符集是可供使用的字形集,其各自的编码是每个字形如何转换为二进制和从二进制转换.

然后我去了Java 7 SE CharsetAPI文档,并且只看到一个getEncoding()方法但没有相应的setter感到惊讶.所以看起来,至少在Java领域,每个字符集都被"绑定"到预先配置的编码.

这让我想到:为什么这里没有二传手?为什么Java不允许用户定义用于将一组字符绑定到二进制文件的编码?

沿着同样的路线,如果Java不支持特定的字符集/编码怎么办?有没有办法用自定义集/编码扩展JRE?

JB *_*zet 7

因为Java称为Charset就是你所谓的编码.CharSet的文档将Charset描述为:

16位Unicode代码单元序列和字节序列之间的命名映射.

顺便说一句,getEncoding()Charset 没有方法.