Issue #21398: Fix an unicode error in the pydoc pager when the documentation

contains characters not encodable to the stdout encoding.
This commit is contained in:
Victor Stinner 2014-05-13 02:05:35 +02:00
parent 1c6970fac9
commit 0cc45baa3d
2 changed files with 6 additions and 0 deletions

View File

@ -1404,6 +1404,9 @@ class _PlainTextDoc(TextDoc):
def pager(text):
"""The first time this is called, determine what kind of pager to use."""
global pager
# Escape non-encodable characters to avoid encoding errors later
encoding = sys.getfilesystemencoding()
text = text.encode(encoding, 'backslashreplace').decode(encoding)
pager = getpager()
pager(text)

View File

@ -26,6 +26,9 @@ Library
- Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
flush() on the underlying binary stream. Patch by akira.
- Issue #21398: Fix an unicode error in the pydoc pager when the documentation
contains characters not encodable to the stdout encoding.
Tests
-----