2

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

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

所以,我想,我必须对自己Unicode进行CP866编码。是否有任何免费软件 java 库可以做到这一点?

4

4 回答 4

3

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

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

更新- 不太可能是后者。据我所知,标准“提供者”使用字符集查找机制不区分大小写。

参考:

于 2013-06-17T10:53:26.840 回答
1

http://msdn.microsoft.com/en-us/goglobal/cc305166 has the list of characters; should no pre-made option work, writing code to iterate through an array translating Unicode characters to bytes suitable for CP866 shouldn't take much time at all.

于 2013-06-17T11:00:39.187 回答
1

该类java.nio.charset.Charset同时支持 Cp866,当然也支持 Unicode。我想您可以将其与encodeanddecode方法一起使用。

于 2013-06-17T10:56:06.130 回答
0

我需要在 android 中使用 Cp866 对字符串进行编码。您可以将 java 库与组成的字符集类一起使用。其中CP866。

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

如果要扩展 Charset 类并添加私有 Charset: Java NIO。第 6 章 字符集

于 2013-08-23T06:50:56.167 回答