История изменений
Исправление user_id_68054, (текущая версия) :
Вся суть в версии питона, скорее всего.
вся суть в том что команда print так работает . :-)
print
делает encode
в *заведомо-известную* кодировку stdout (sys.stdout.encoding)
но так как в случае pipe — Пайсон не знает какая кодировка , то в этом случае print
делает encode
с использование *кодировки-поумолчанию* :-D для ситуаций с неизвестной кодировкой..
вот в этом весь и прикол.. тут (далее) раскрывается нюанс :-) :
* устаревший Python-2.X — считает что в случае неизвестной кодировки мы должны всегда использованить ASCII (независимо от того какая у нас локаль в системе..)
* а обычный Python-3.X — считает что в случае неизвестной кодировки мы должны использовать UTF-8 (независимо от того какая у нас локаль в системе.. даже если Eddy_Em разбанят :-) )
# вывод: поведение Python-2.X как обычно черезжопное .. и весь расчёт ведётся на то что пользователь будет вручную делать decode\encode не полагаясь на автоматику (и сверяться с локалью, если нужно). а поведение Python-3.X работает вполне удовлетворительно (так как если мы не знаем какая кодировка то UTF-8 в 99.99%-случаев окажется правдой :))
Исправление user_id_68054, :
Вся суть в версии питона, скорее всего.
вся суть в том что команда print так работает . :-)
print
делает encode
в *заведомо-известную* кодировку stdout (sys.stdout.encoding)
но так как в случае pipe — Пайсон не знает какая кодировка , то в этом случае print
делает encode
с использование *кодировки-поумолчанию* :-D для ситуаций с неизвестной кодировкой..
вот в этом весь и прикол.. тут (далее) раскрывается нюанс :-) :
* устаревший Python-2.X — считает что в случае неизвестной кодировки мы должны всегда использованить ASCII (независимо от того какая у нас локаль в системе..)
* а обычный Python-3.X — считает что в случае неизвестной кодировки мы должны использовать UTF-8 (независимо от того какая у нас локаль в системе.. даже если Eddy_Em разбанят :-) )
# вывод: поведение Python-2.X как обычно черезжопное .. и весь расчёт ведётся на то что пользователь будет вручную делать decode\encode не полагаясь на автоматику (и сверяться с локалью, если нужно). а поведение Python-3.X работает вполне удовлетворительно (так как если мы не знаем какая кодировка то UTF-8 то 99.99%-случаев окажется правдой :))
Исправление user_id_68054, :
Вся суть в версии питона, скорее всего.
вся суть в том что команда print так работает . :-)
print
делает encode
в *заведомо-известную* кодировку stdout (sys.stdout.encoding)
но так как в случае pipe — Пайсон не знает какая кодировка , то в этом случае print
делает encode
с использование *кодировки-поумолчанию* :-D для ситуаций с неизвестной кодировкой..
вот в этом весь и прикол.. тут (далее) раскрывается нюанс :-) :
* устаревший Python-2.X — считает что в случае неизвестной кодировки мы должны всегда использованить ASCII (независимо от того какая у нас локаль в системе..)
* а обычный Python-3.X — считает что в случае неизвестной кодировки мы должны использовать UTF-8 (независимо от того какая у нас локаль в системе.. даже если Eddy_Em разбанят :-) )
# вывод: поведение Python-2.X как обычно черезжопное .. и весь расчёт ведётся на то что пользователь будет вручную делать decode\encode не полагаясь на автоматику (и сверяться с локалью, если нужно). а поведение Python-3.X работает вполне удовлетворительное (так как если мы не знаем какая кодировка то UTF-8 то 99%-случаев окажется правдой :))
Исправление user_id_68054, :
Вся суть в версии питона, скорее всего.
вся суть в том что команда print так работает . :-)
print
делает encode
в *заведомо-известную* кодировку stdout (sys.stdout.encoding)
но так как в случае pipe — Пайсон не знает какая кодировка , то в этом случае print
делает encode
с использование *кодировки-поумолчанию* :-D для ситуаций с неизвестной кодировкой..
вот в этом весь и прикол.. тут (далее) раскрывается нюанс :-) :
* устаревший Python-2.X — считает что в случае неизвестной кодировки мы должны всегда использованить ASCII (независимо от того какая у нас локаль в системе..)
* а обычный Python-3.X — считает что в случае неизвестной кодировки мы должны использовать UTF-8 (независимо от того какая у нас локаль в системе.. даже если Eddy_Em разбанят :-) )
Исходная версия user_id_68054, :
Вся суть в версии питона, скорее всего.
вся суть в том что команда print так работает . :-)
print
делает encode
в *заведомо-известную* кодировку stdout (sys.stdout.encoding)
но так как в случае pipe — Пайсон не знает какая кодировка , то в этом случае print
делает encode
с использование *кодировки-поумолчанию* :-D для ситуаций с неизвестной кодировкой..
вот в этом весь и прикол.. тут (далее) раскрывается нюанс :-) :
* устаревший Python-2.X — считает что в случае неизвестной кодировки мы должны всегда использованить ASCII (независимо от того какая у нас локаль в системе..)
* а обычный Python-3.X — считает что в случае неизвестной кодировки мы должны использовать UTF-8 (независимо от того какая у нас локаль в системе.. даже если Eddy_Em разбанят :-) .. так как UTF-8 обратно совместим с ASCII)