#-*- coding:utf-8 -*- import urllib.request import subprocess #import os #os.system("chcp 65001") subprocess.call("chcp 65001", shell=True) f = urllib.request.urlopen("http://www.relcom.ru/") a = f.read() print(a.decode('utf-8'))
PS C:\omni\python> python my.pyТо есть, почему-то берется кодировка cp866, а не utf-8, хотя я вроде бы ее поменял с помощью chcp.
Active code page: 65001
Traceback (most recent call last):
File “my.py”, line 9, in <module>
print(a.decode('utf-8'))
File “C:\Python33\lib\encodings\cp866.py”, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)
UnicodeEncodeError: ‘charmap’ codec can't encode character ‘\xab’ in position 4327: character maps to <undefined>
PS C:\omni\python>
Когда запускаю этот же скрипт в этой же консоли повторно, то все выполняется как надо и на экран выводится код страницы relcom.ru :
PS C:\omni\python> python my.pyПрописал в алиасах ‘cp65001’ : ‘utf_8’ - не помогает.
Active code page: 65001
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>
<title>Компания Релком </title>
…
Как бы сделать так, чтобы все выводилось нормально с первого раза? В чем ошибка?