我发现this excellent SO question要求区分集与字符编码之间的区别。这是有道理的:基本上字符集是可供使用的字形集,其各自的编码是每个字形转换为二进制的方式。
然后我转到Java 7 SE Charset
API doc并且只看到getEncoding()
方法但没有相应的 setter 而感到惊讶。所以看来,至少在Java领域,每个字符集都被“绑定”到预先配置的编码。
这让我想到了:为什么这里没有setter?为什么Java不允许用户定义用于将一组字符绑定到二进制文件的编码?
沿着同样的路线,如果Java不支持特定的字符集/编码怎么办?有没有办法用自定义集/编码扩展JRE?
答案 0 :(得分:7)
因为Java称为Charset是你所谓的编码。 CharSet的文档将Charset描述为:
16位Unicode代码单元序列和字节序列之间的命名映射。
顺便说一句,Charset中没有getEncoding()
方法。
答案 1 :(得分:1)
问题:
沿着同样的路线,如果Java不支持特定的话会怎样 字符集/编码?有没有办法用自定义扩展JRE 套/编码?
Java几乎支持您可能需要的任何编码:http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html