如何以编程方式确定特定字符集中字符的最大大小(以字节为单位)?

时间:2014-03-25 06:30:43

标签: java character-encoding

我使用以下方法获得所有支持的字符集:

Object[] Charsets = Charset.availableCharsets().keySet().toArray();

我现在需要遍历可以在该charset中编码的每个字符。为此,我考虑使用每个编码的最大字节数,并为每个字节通过Byte.MIN_VALUEByte.MAX_VALUE。然后,我将该字节数组传递给接受String数组和特定编码的byte[]构造函数。

但是找不到任何关于如何确定特定字符集中字符表示的最大长度(字节)的线索。

我尝试使用空格字符(即“”)以该编码创建字符串并使用.getBytes("<specific charset>").length。但是我相信这只适用于固定大小的字符集。有一些字符集,其中字符的编码可以有可变的字节数。

这不是商业软件,因此不需要漂亮的解决方案。我需要为每个支持的字符集创建一种可视化地图。每个字符表示都写入图像。我也不确定如何选择能够正确显示字符集的所有字符的字体。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

charset.newEncoder().maxBytesPerChar()