This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: stderr "refs" output does not respect PYTHONIOENCODING
Type: Stage:
Components: Versions: Python 3.3
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: chris.jerdonek, georg.brandl
Priority: normal Keywords:

Created on 2012-08-14 11:40 by chris.jerdonek, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (2)
msg168192 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) Date: 2012-08-14 11:40
The --help documentation for the python executable says--

PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.

However, PYTHONIOENCODING doesn't seem to be respected for the python executable's "refs" output to stderr.  For example, this--

args = [sys.executable, '-c', "print('[100 refs]')"]

env = {'PYTHONIOENCODING': 'utf-8'}
popen = Popen(args, universal_newlines=False, stdin=PIPE, stdout=PIPE, stderr=PIPE, env=env)
print(repr(popen.communicate()))

env = {'PYTHONIOENCODING': 'utf-16'}
popen = Popen(args, universal_newlines=False, stdin=PIPE, stdout=PIPE, stderr=PIPE, env=env)
print(repr(popen.communicate()))

yields--

(b'[10 refs]\n', b'[41761 refs]\n')
(b'[\x001\x000\x00 \x00r\x00e\x00f\x00s\x00]\x00\n\x00', b'[42367 refs]\n')
msg199894 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2013-10-14 14:19
The "refs" output is only active in debug mode, and only for debugging. It is printed directly to stderr using C fprintf(), I don't think it's worth the complication.
History
Date User Action Args
2022-04-11 14:57:34adminsetgithub: 59853
2013-10-14 14:19:30georg.brandlsetstatus: open -> closed

nosy: + georg.brandl
messages: + msg199894

resolution: wont fix
2012-08-14 11:40:28chris.jerdonekcreate