Кодировка Blackberry 1251

#blackberry #encoding #cp1251

#ежевика #кодирование #cp1251

Вопрос:

Есть ли способ преобразовать массив байтов в строку с кодировкой Windows-1251 в Blackberry? я пытался

 str = new String(mybyteArr, "Windows-1251");
  

или

 str = new String(mybyteArr, "Cp1251");
  

но я получаю исключение UnsupportedEncodingException.

Я использую Blackberry JRE 5.0.

Ответ №1:

Это не поддерживается прямо из коробки в BB API.

BlackBerry поддерживает следующие кодировки символов:

  • «ISO-8859-1»
  • «UTF-8»
  • «UTF-16BE»
  • «US-ASCII»

Однако, если у вас есть массив байтов, и вы знаете, что это строка, закодированная в cp1251, тогда вы можете вручную создать String из него, используя что-то вроде этого:

 StringBuffer sb = new StringBuffer();
char c;
for (int i = 0; i < mybyteArr.length; i  ) {
    c = getUnicodeCharForCP1251(mybyteArr[i]);
    sb.append(c);
}

private char getUnicodeCharForCP1251(byte b) {
    // return a matching unicode char for the argument
    // using the table from http://en.wikipedia.org/wiki/Windows-1251
}