У меня была очень похожая проблема для решения недавно. Как и другие ответы, я также начал играть с HttpClient et al. Тем не менее, эти библиотеки требуют, чтобы вы знали заранее кодировку файла, который вы хотите загрузить. В противном случае преобразование полученного HTML-файла приведет к нечитаемым символам.
Этот подход не будет работать, поскольку кодировка HTML-файла указана только в самом файле HTML. В зависимости от версии HTML, кодировка задается многими различными способами, как заголовок XML, два элемента Метатекли разные головы и т.д. Если вы будете следовать этому подходу, вы должны были бы:
- Скачать файл и посмотреть на чтобы выяснить кодировку, проанализировав содержимое HTML.
- Загрузите файл во второй раз, чтобы указать правильную кодировку.
Особенно синтаксический анализ содержимого HTML для правильных строк кодирования является подверженным ошибкам. Вместо этого я предлагаю вам полагаться на библиотеку, такую как JSoup, которая будет выполнять эту работу за вас. Поэтому вместо загрузки файла через httpclient используйте JSoup для извлечения файла для вас. Кроме того, JSoup предоставляет хороший API для прямого доступа к различным частям HTML-страницы (например, название страницы).
* Обновить *. HttpClient ** был заменен ** на проект [Apache HttpComponents] (http://hc.apache.org/) в его [HttpClient] (http://hc.apache.org/httpcomponents-client-ga) и [Модули HttpCore] (http://hc.apache.org/httpcomponents-core-ga/), которые обеспечивают лучшую производительность и большую гибкость. – informatik01