#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
}