Проблема в том, что вы звоните str(array[0])
, где array[0]
- это строка в Unicode.Это означает, что он будет закодирован в кодировке по умолчанию, которая по некоторым причинам в вашем случае выглядит как cp1250
.(Вы связались с sys.setdefaultencoding()
? Не делайте этого.)
Чтобы получить строки байтов из юникода, вы должны явно кодировать юникод.Не просто позвоните str()
на это.Закодируйте его, используя кодировку, которую должен иметь результат (что в случае URL довольно сложно угадать, но в этом случае, вероятно, UTF-8.) Итак, используйте `array [0] .encode ('utf-8').Вам также может потребоваться заключить в URL URL-адреса, отличные от ASCII, хотя это зависит от того, что ожидает удаленный конец.