Уведомления

Группа в Telegram: @pythonsu

#1 Июль 13, 2013 08:21:30

longimanus
Зарегистрирован: 2013-07-13
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

python 3.3 chcp 65001

Написал программу на python 3.3 (первую на python!):

#-*- 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'))
Запускаю ее под win 7 (64) в консоли (cmd, powershell, от jpsoft), появляется ошибка:
PS C:\omni\python> python my.py
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>
То есть, почему-то берется кодировка cp866, а не utf-8, хотя я вроде бы ее поменял с помощью chcp.
Когда запускаю этот же скрипт в этой же консоли повторно, то все выполняется как надо и на экран выводится код страницы relcom.ru :
PS C:\omni\python> python my.py
Active code page: 65001
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>
<title>Компания Релком </title>

Прописал в алиасах ‘cp65001’ : ‘utf_8’ - не помогает.
Как бы сделать так, чтобы все выводилось нормально с первого раза? В чем ошибка?

Отредактировано longimanus (Июль 13, 2013 08:32:00)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version