Кодировка Blackberry 1251

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

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

or

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

но я получаю UnsupportedEncodingException.

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


person Vame    schedule 25.05.2011    source источник


Ответы (1)


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

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

  • «ИСО-8859-1»
  • "УТФ-8"
  • "УТФ-16БЭ"
  • "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
}
person Vit Khudenko    schedule 25.05.2011