Issue #17860: explicitly mention that std* streams are opened in binary mode by default.
The documentation does mention that the streams are opened in text mode
when univeral_newlines is true, but not that that they are opened in
binary mode when that argument is false and that seems to confuse at
least some users.
diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst
index 4212e02..cf9fd0b 100644
--- a/Doc/library/subprocess.rst
+++ b/Doc/library/subprocess.rst
@@ -293,7 +293,8 @@
If *universal_newlines* is ``True``, the file objects *stdin*, *stdout* and
*stderr* will be opened as text streams in :term:`universal newlines` mode
using the encoding returned by :func:`locale.getpreferredencoding(False)
- <locale.getpreferredencoding>`. For *stdin*, line ending characters
+ <locale.getpreferredencoding>`, otherwise these streams will be opened
+ as binary streams. For *stdin*, line ending characters
``'\n'`` in the input will be converted to the default line separator
:data:`os.linesep`. For *stdout* and *stderr*, all line endings in the
output will be converted to ``'\n'``. For more information see the
@@ -537,7 +538,8 @@
If *universal_newlines* is ``True``, the file objects *stdin*, *stdout*
and *stderr* are opened as text streams in universal newlines mode, as
- described above in :ref:`frequently-used-arguments`.
+ described above in :ref:`frequently-used-arguments`, otherwise they are
+ opened as binary streams.
If given, *startupinfo* will be a :class:`STARTUPINFO` object, which is
passed to the underlying ``CreateProcess`` function.