LINUX.ORG.RU

История изменений

Исправление 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)