Подход Джонатана предполагает, что ваши байты представляют собой строку в кодировке BlackBerry по умолчанию (ISO-8859-1).Однако большинство современных приложений многоязыковы, поэтому лучшая поддерживаемая кодировка - UTF-8.Для соблюдения кодировки набора вы можете использовать что-то вроде этого:
/**
* Constructs a String using the data read from the passed InputStream.
* Data is read using a 1024-chars buffer. Each char is created using the passed
* encoding from one or more bytes.
*
* <p>If passed encoding is null, then the default BlackBerry encoding (ISO-8859-1) is used.</p>
*
* BlackBerry platform supports the following character encodings:
* <ul>
* <li>"ISO-8859-1"</li>
* <li>"UTF-8"</li>
* <li>"UTF-16BE"</li>
* <li>"UTF-16LE"</li>
* <li>"US-ASCII"</li>
* </ul>
*
* @param in - InputStream to read data from.
* @param encoding - String representing the desired character encoding, can be null.
* @return String created using the char data read from the passed InputStream.
* @throws IOException if an I/O error occurs.
* @throws UnsupportedEncodingException if encoding is not supported.
*/
public static String getStringFromStream(InputStream in, String encoding) throws IOException {
InputStreamReader reader;
if (encoding == null) {
reader = new InputStreamReader(in);
} else {
reader = new InputStreamReader(in, encoding);
}
StringBuffer sb = new StringBuffer();
final char[] buf = new char[1024];
int len;
while ((len = reader.read(buf)) > 0) {
sb.append(buf, 0, len);
}
return sb.toString();
}