Java中的希伯来语编码

时间:2012-07-19 16:28:03

标签: java android encoding hebrew codepages

我遇到编码问题。我有一个Android应用程序,它包含一个文本字段,允许用户使用希伯来语键盘和希伯来字符键。

我希望根据pc862希伯来语代码页对此数据进行编码,以便将其发送到打印机进行打印(打印机配置为根据此代码页接受数据)。我应该可以使用以下代码执行此操作:

String strData = new String(textData);
byte [] rawData = null;
try
{
    rawData = strData.getBytes("Cp862"); // Cp862: PC Hebrew
}
catch (UnsupportedEncodingException e)
{
    rawData = strData.getBytes();
}

根据此处找到的文件,http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html

我应该可以对此代码页进行编码。但是,代码不断抛出UnsupportedEncodingException。我使用java se 7和jre 7,并导入了java.io.我不知道为什么会这样。我已经尝试过本文档中的其他代码页以及我尝试过的代码页,其中大多数都是正确编码的。

有人有任何想法我做错了吗?任何见解都会非常感激。

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用名称“IBM862”?

如果我运行以下代码:

public static void main(String[] args) {
    Map<String, Charset> avmap = Charset.availableCharsets();
    for(String name : avmap.keySet()) {
        System.out.println("Charset: "+avmap.get(name));
    }
}

我得到一个可用的Charset名称列表,其中包括“IBM862”,但不包括Cp862。根据您链接的页面,“IBM862”是Cp862的 java.nio 名称。

答案 1 :(得分:0)

默认编码(UTF-8)支持希伯来语,为什么需要CP862?

答案 2 :(得分:0)

我不知道您的应用的许可限制,但GNU Classpath有这样的编码器和source is of course available。您可以将此包含在您自己的应用程序中(当然,许可证允许)。