Python 3: Как указать кодировку стандартного ввода [дубликата]

На этот вопрос уже есть ответ здесь:

Как изменить кодировку STDIN на Python 4 ответа

При переносе кода с Python 2 на Python 3 я сталкиваюсь с этой проблемой при чтении текста UTF-8 из стандартного ввода. В Python 2 это работает нормально:

for line in sys.stdin:
    ...

Но Python 3 ожидает ASCII отsys.stdin, и если на входе есть символы не ASCII, я получаю ошибку:

UnicodeDecodeError: 'ASCII» кодек можетt декодировать байт .. в позиции ..: порядковый номер не в диапазоне (128)

Для обычного файла я бы указал кодировку при открытии файла:

with open('filename', 'r', encoding='utf-8') as file:
    for line in file:
        ...

Но как я могу указать кодировку для стандартного ввода? Другие SO сообщения (например,Как изменить кодировку STDIN на Python) предложили использовать

input_stream = codecs.getreader('utf-8')(sys.stdin)
for line in input_stream:
    ...

Тем не менее, это неt работает в Python 3. Я все еще получаю то же сообщение об ошибке. Я'м, используя Ubuntu 12.04.2, и моя локаль установлена на en_US.UTF-8.

Ответы на вопрос(1)

Ваш ответ на вопрос