1). Чтение байтов из потока:
// use net.rim.device.api.io.IOUtilities
byte[] data = IOUtilities.streamToBytes(inputStream);
2). Создайте строку из байтов:
String s = new String(data, "UTF-8");
Это означает, что вы знаете кодировку, с которой были закодированы текстовые данные перед отправкой с сервера. В приведенном выше примере кодировка UTF-8. BlackBerry поддерживает следующие кодировки символов:
* "ISO-8859-1"
* "UTF-8"
* "UTF-16BE"
* "US-ASCII"
Кодировка по умолчанию - «ISO-8859-1». Поэтому, когда вы используете конструктор String(byte[] data)
, он совпадает с String(byte[] data, "ISO-8859-1")
.
Если вы не знаете, какую кодировку использует сервер, я бы рекомендовал сначала попробовать UTF-8, поскольку к настоящему моменту он почти стал стандартным для серверов. Также обратите внимание, что сервер может отправлять кодировку через заголовок http, чтобы вы могли извлечь его из ответа. Однако я видел много серверов, которые помещают в заголовок «UTF-8», в то время как фактически используют ISO-8859-1 или даже ASCII для кодирования данных.