diff options
author | Inada Naoki <songofacandy@gmail.com> | 2021-05-02 05:01:02 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-02 05:01:02 (GMT) |
commit | fd0bc7e7f4f2c7de98a1ebc7ad1ef65b8f8f7ad6 (patch) | |
tree | 7b29d646ed11327975d742a34510a85de403e5d7 | |
parent | 49b26fa517165f991c35a4afcbef1fcb26836bec (diff) | |
download | cpython-fd0bc7e7f4f2c7de98a1ebc7ad1ef65b8f8f7ad6.zip cpython-fd0bc7e7f4f2c7de98a1ebc7ad1ef65b8f8f7ad6.tar.gz cpython-fd0bc7e7f4f2c7de98a1ebc7ad1ef65b8f8f7ad6.tar.bz2 |
bpo-43733: netrc try to use UTF-8 before using locale encoding. (GH-25781)
-rw-r--r-- | Doc/library/netrc.rst | 4 | ||||
-rw-r--r-- | Lib/netrc.py | 8 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2021-05-01-22-59-20.bpo-43733.gJWwEQ.rst | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/Doc/library/netrc.rst b/Doc/library/netrc.rst index 3d29ac4..4bf7de6 100644 --- a/Doc/library/netrc.rst +++ b/Doc/library/netrc.rst @@ -38,6 +38,10 @@ the Unix :program:`ftp` program and other FTP clients. :func:`os.path.expanduser` is used to find the location of the :file:`.netrc` file when *file* is not passed as argument. + .. versionchanged:: 3.10 + :class:`netrc` try UTF-8 encoding before using locale specific + encoding. + .. exception:: NetrcParseError diff --git a/Lib/netrc.py b/Lib/netrc.py index f0ae48c..734d94c 100644 --- a/Lib/netrc.py +++ b/Lib/netrc.py @@ -26,8 +26,12 @@ class netrc: file = os.path.join(os.path.expanduser("~"), ".netrc") self.hosts = {} self.macros = {} - with open(file) as fp: - self._parse(file, fp, default_netrc) + try: + with open(file, encoding="utf-8") as fp: + self._parse(file, fp, default_netrc) + except UnicodeDecodeError: + with open(file, encoding="locale") as fp: + self._parse(file, fp, default_netrc) def _parse(self, file, fp, default_netrc): lexer = shlex.shlex(fp) diff --git a/Misc/NEWS.d/next/Library/2021-05-01-22-59-20.bpo-43733.gJWwEQ.rst b/Misc/NEWS.d/next/Library/2021-05-01-22-59-20.bpo-43733.gJWwEQ.rst new file mode 100644 index 0000000..5ecd928 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-05-01-22-59-20.bpo-43733.gJWwEQ.rst @@ -0,0 +1,2 @@ +Change :class:`netrc.netrc` to use UTF-8 encoding before using locale +encoding. |