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 <>
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)


('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:

I am attaching a failing test case.  I will upload a patch shortly.

Also see the related documentation issue 15561.
Date User Action Args
2012-08-08 21:36:15chris.jerdoneksetrecipients: + chris.jerdonek
2012-08-08 21:36:15chris.jerdoneksetmessageid: <>
2012-08-08 21:36:14chris.jerdoneklinkissue15595 messages
2012-08-08 21:36:14chris.jerdonekcreate