Недавно мне пришлось решить очень похожую проблему. Как и другие ответы, я также начал играть с HttpClient et al. Однако эти библиотеки требуют, чтобы вы знали заранее кодировку файла, который вы хотите загрузить. В противном случае преобразование полученного HTML-файла приведет к нечитаемым символам.
Этот подход не будет работать, поскольку кодировка файла HTML указывается только в самом файле HTML. В зависимости от версии HTML кодировка указывается разными способами, такими как заголовок XML, два разных элемента метатега заголовка и т. Д. Если вы придерживаетесь этого подхода, вам необходимо:
- Загрузите файл и просмотрите содержимое, чтобы выяснить кодировку, анализируя содержимое HTML.
- Загрузите файл еще раз, чтобы указать правильную кодировку.
Особенно синтаксический анализ содержимого HTML для правильных строк кодирования подвержен ошибкам. Вместо этого я предлагаю вам воспользоваться библиотекой типа JSoup , которая сделает эту работу за вас. Поэтому вместо загрузки файла через httpclient используйте JSoup, чтобы получить файл для вас. Кроме того, JSoup предоставляет удобный API для прямого доступа к различным частям HTML-страницы (например, заголовок страницы).