我遇到编码问题。我有一个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.我不知道为什么会这样。我已经尝试过本文档中的其他代码页以及我尝试过的代码页,其中大多数都是正确编码的。
有人有任何想法我做错了吗?任何见解都会非常感激。
答案 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。您可以将此包含在您自己的应用程序中(当然,许可证允许)。