任何从Unicode编码到CP866的免费软件java库?

时间:2013-06-17 10:48:33

标签: java android character-encoding cyrillic cp866

我正在尝试打印到仅支持CP866编码的设备。

不幸的是,我正在打印的设备(Android设备)不支持CP866,导致"abc".getBytes("CP866")抛出UnsupportedEncodingException

所以,我想,我必须自己Unicode进行CP866编码。有没有这样做的免费软件java库?

4 个答案:

答案 0 :(得分:3)

根据Oracle文档,Cp866是Java 7支持的编码。所以

  • 您使用的是不支持Cp866的旧版Java(例如,请参阅@Joachim的评论!!!)或
  • Java运行时无法识别您正在使用的名称。 (字符集的规范名称为"Cp866"而非"CP866"。)

更新 - 不太可能是后者。根据我从the source得出的结论,标准“提供者”使用的字符集查找机制不区分大小写。

参考文献:

答案 1 :(得分:1)

java.nio.charset.Charset同时支持Cp866和Unicode。我想你可以使用encodedecode方法。

答案 2 :(得分:1)

http://msdn.microsoft.com/en-us/goglobal/cc305166包含字符列表;如果没有预先制作的选项,编写代码来迭代数组,将Unicode字符翻译成适合CP866的字节,不应该花费太多时间。

答案 3 :(得分:0)

我需要在android中用Cp866编码字符串。您可以将java库与make charset类一起使用。其中有Cp866。

这是链接:http://www.doc.ic.ac.uk/~awl03/cgi-bin/trac.cgi/miro/browser/trunk/gcc/libjava/classpath/gnu/java/nio/charset

如果你想扩展Charset类并为你添加私人字符集: Java NIO。第6章字符集