Commit 38d3d22b authored by Victor Stinner's avatar Victor Stinner

(Merge 3.4) Issue #21398: Fix an unicode error in the pydoc pager when the

documentation contains characters not encodable to the stdout encoding.
parents 470cf8df 0cc45baa
...@@ -1404,6 +1404,9 @@ class _PlainTextDoc(TextDoc): ...@@ -1404,6 +1404,9 @@ class _PlainTextDoc(TextDoc):
def pager(text): def pager(text):
"""The first time this is called, determine what kind of pager to use.""" """The first time this is called, determine what kind of pager to use."""
global pager global pager
# Escape non-encodable characters to avoid encoding errors later
encoding = sys.getfilesystemencoding()
text = text.encode(encoding, 'backslashreplace').decode(encoding)
pager = getpager() pager = getpager()
pager(text) pager(text)
......
...@@ -84,6 +84,9 @@ Core and Builtins ...@@ -84,6 +84,9 @@ Core and Builtins
Library Library
------- -------
- Issue #21398: Fix an unicode error in the pydoc pager when the documentation
contains characters not encodable to the stdout encoding.
- Issue #16531: ipaddress.IPv4Network and ipaddress.IPv6Network now accept - Issue #16531: ipaddress.IPv4Network and ipaddress.IPv6Network now accept
an (address, netmask) tuple argument, so as to easily construct network an (address, netmask) tuple argument, so as to easily construct network
objects from existing addresses. objects from existing addresses.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment