为什么没有Java字符集编码方法?

为什么没有Java字符集编码方法?,java,character-encoding,Java,Character Encoding,我发现询问字符集与字符编码之间的区别。这是有意义的:本质上,字符集是可供使用的字形集,其各自的编码是每个字形如何转换为二进制和从二进制转换而来 然后我去了,惊讶地发现只有一个getEncoding()方法,但没有相应的setter。所以看起来,至少在Java语言中,每个字符集都“绑定”到预先配置的编码 这让我思考:为什么这里没有setter?为什么Java不允许用户定义用于将一组字符绑定到二进制的编码 同样,如果Java不支持特定的字符集/编码,该怎么办?有没有办法用自定义集/编码扩展JRE?因

我发现询问字符集与字符编码之间的区别。这是有意义的:本质上,字符集是可供使用的字形集,其各自的编码是每个字形如何转换为二进制和从二进制转换而来

然后我去了,惊讶地发现只有一个
getEncoding()
方法,但没有相应的setter。所以看起来,至少在Java语言中,每个字符集都“绑定”到预先配置的编码

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


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

因为Java所称的字符集就是您所称的编码。字符集文档将字符集描述为:

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

顺便说一句,字符集中没有
getEncoding()

同样,如果Java不支持特定的 字符集/编码?有没有一种方法可以通过定制扩展JRE 设置/编码


Java支持您可能需要的几乎任何编码:

谢谢@JB Nizet(+1)-那么如何指定用于给定应用程序的
字符集(编码)和(实际)字符集?Java中的所有字符都是unicode,您可以在这个庞大的字符集中使用任何字符。处理字符时,不必选择任何字符集。当您将这些字符转换为字节时,您最好选择一个支持要写入的字符的字符集(或编码,如果您愿意)。UTF-8通常是一个不错的选择(至少在西方国家是这样),因为它支持每个unicode字符,并且最常用的西方字符只使用1个字节。