Это сводит меня с ума в данный момент.Из моих последних дней исследований ясно, что юникод - сложная тема.Но вот поведение, к которому я не знаю, как обращаться.
Если я читаю файл с не-ASCII-символами с диска и записываю его обратно в файл, все работает как запланировано.однако, когда я читаю тот же файл из sys.stdin, id не работает, и символы не-ASCII не кодируются должным образом.Пример кода здесь:
# -*- coding: utf-8 -*-
import sys
with open("testinput.txt", "r") as ifile:
lines = ifile.read()
with open("testout1.txt", "w") as ofile:
for line in lines:
ofile.write(line)
with open("testout2.txt", "w") as ofile:
for line in sys.stdin:
ofile.write(line)
Файл ввода testinput.txt
выглядит так:
を
Sōten_Kōro
, когда я запускаю сценарий из командной строки как cat testinput.txt | python test.py
, я получаю следующий выводсоответственно:
testout1.txt
:
を
Sōten_Kōro
testout2.txt
:
???
S??ten_K??ro
Есть идеи, какадрес это было бы очень полезно.Благодарю.Пол.