Так как это решить?
Ну, вы должны получить сырые байты. После того, как вы загрузили необработанные байты, вы можете распечатать их и посмотреть, в чем проблема.
Есть ли какая-нибудь библиотека, которая проверила бы, что такое страница кодирования и конвертировала бы ее так, чтобы она была читабельной?
На самой странице написано, что это за кодировка. Вы можете предположить, что это UTF-8, но это не всегда так.
Если страница представляет собой XML или XHTML, <?xml
в начале включает кодировку.
Страница имеет заголовок типа содержимого Content-Type: text/plain; charset="UTF-8"
, в котором есть кодировка.
Довольно легко правильно декодировать страницу.
Шаг 1. Не предполагайте, что страница имеет формат UTF-8.
Шаг 2. Получить содержимое, прочитать заголовки.
Шаг 3. Используйте кодировку, указанную в заголовке, а не предполагаемую кодировку UTF-8.