如何在Java / Android中定义新的Charset?

时间:2011-05-11 07:05:06

标签: java android character-encoding

在台湾,我们有一个名为“Unicode At One(UAO)”的字符编码,它是BIG-5的扩展,但Java和Android不支持。 代码页位于http://moztw.org/docs/big5/table/uao241-b2u.txt

我的问题是,如何使用此Charset构建具有字节数组数据的String对象? 我想我会扩展String类并在其中做一些事情,但我不知道如何创建一个新的Charset。

2 个答案:

答案 0 :(得分:11)

您可以通过编写Charset并通过服务发现机制注册来添加自己的CharsetProvider实现。

您需要扩展Charset并实施其newDecodernewEncoder方法,以分别返回适当的CharsetDecoderCharsetEncoder

答案 1 :(得分:0)

我想在@Joachim 的回答中添加更多内容。

自定义字符集的示例包含在 Ron Hitchens 的 Java NIO 一书中。您可以从 sample of Charset and CharsetProvider 下载 the support site。请注意,您必须制作一个包含附加 CharsetProvider 的 FQCN 的文件 META-INF/services/java.nio.charset.spi.CharsetProvider,并将其放入您将制作的 jar 中。