2

CP037エンコーディングはデフォルトでBlackBerryでサポートされていないため、私が使用できる既製のlibarayがあるかどうか誰かが知っていますか? 私はオンラインで見ましたが、何も見えないようです。自分で書く唯一のオプションですか?そのようなことを行う方法に関するヒントはありますか?

4

1 に答える 1

3

独自のバイトの書き込み -> 文字列デコーダーは、エンコーディングが 256 文字を超えないため、非常に簡単に見えます。Wikipediaの表をswitch ステートメントに変換し、結果の文字を String に蓄積するだけです。

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 に答える