2

由于黑莓默认不支持CP037 编码,有谁知道我是否可以使用任何现成的 libaray?我在网上看了看,似乎什么都看不到。自己写一个是唯一的选择吗?有没有人对如何做这样的事情有任何提示?

4

1 回答 1

3

编写自己的字节 -> 字符串解码器似乎非常简单,因为编码不超过 256 个字符。只需将Wikipedia 中的表格转换为 switch 语句,并将生成的字符累积为字符串。

byte[] rawCP037data = getEbcdicDatabytes();
StringBuffer buf = new StringBuffer();
for(int i = 0; i < rawCP037data.length; i++) {
    buf.append(convertCP037toUnicodeChar(rawCP037data[i]));
}
String decodedString = buf.toString();

char convertCP037toChar(byte b) {
    switch (b) {
    case 0x99:
      return 'r';
    case 0xAB:  // upside down question mark
      return 0x00BF;
    // TODO! fill out the rest of the table here
    }
}
于 2012-07-14T19:36:51.067 回答