homepage

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.

Author chris.jerdonek
Recipients chris.jerdonek
Date 2012年08月08日.21:36:13
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1344461775.23.0.274836365722.issue15595@psf.upfronthosting.co.za>
In-reply-to
Content
subprocess.Popen() with universal_newlines=True does not convert line breaks correctly when the preferred encoding is UTF-16. For example, the following code--
code = r"import sys; sys.stdout.buffer.write('a\r\nb'.encode('utf-16'))"
args = [sys.executable, '-c', code]
popen = Popen(args, universal_newlines=True, stdin=PIPE, stdout=PIPE)
print(popen.communicate(input=''))
yields--
('a\n\nb', None)
instead of--
('a\nb', None)
The reason is that the code attempts to convert newlines before decoding to unicode instead of after:
http://hg.python.org/cpython/file/85266c6f9ae4/Lib/subprocess.py#l830
I am attaching a failing test case. I will upload a patch shortly.
Also see the related documentation issue 15561.
History
Date User Action Args
2012年08月08日 21:36:15chris.jerdoneksetrecipients: + chris.jerdonek
2012年08月08日 21:36:15chris.jerdoneksetmessageid: <1344461775.23.0.274836365722.issue15595@psf.upfronthosting.co.za>
2012年08月08日 21:36:14chris.jerdoneklinkissue15595 messages
2012年08月08日 21:36:14chris.jerdonekcreate

AltStyle によって変換されたページ (->オリジナル) /