Я пытаюсь прочитать ответ от сервера, используя сокет, и информация в кодировке UTF-8.Я обертываю InputStream из сокета в InputStreamReader с кодировкой, установленной в «UTF-8».
По какой-то причине кажется, что читается только часть ответа, а затем чтение просто зависает в течение минуты или двух, а затем заканчивается.Если я установлю кодировку для InputStreamReader на «ISO-8859-1», тогда я смогу сразу прочитать все данные, но, очевидно, не все символы будут отображаться правильно.
Код выглядит примерно так:
socketConn = (SocketConnection)Connector.open(url);
InputStreamReader is = new InputStreamReader(socketConn.openInputStream(), "UTF-8");
Затем я читаю заголовки и содержимое.Содержимое разбивается на части, и я читаю строку с размером каждого чанка (конвертируемое в десятичное от шестнадцатеричного), чтобы узнать, сколько читать.
Я не понимаю разницу в чтении с двумя кодировками иэффект, который он может иметь, потому что он работает без проблем с ISO-8859-1 и, в конце концов, работает с UTF-8, есть только большая задержка.