Title: PEP 597: netrc uses locale encoding.
Type: Stage:
Components: Library (Lib) Versions: Python 3.10
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: methane, xiang.zhang
Priority: normal Keywords:

Created on 2021-04-05 12:46 by methane, last changed 2021-04-14 08:11 by methane.

Messages (2)
msg390232 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2021-04-05 12:46

Can we change the encoding="utf-8" and errors="replace"?

IMHO, comments are source of UnicodeDecodeError. So we can open file with binary mode and skip comments without decoding it.
But we need to decode non-comment lines lines with some encoding anyway.
msg391043 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2021-04-14 08:11
I googled "netrc UnicodeDecodeError". It is very rare, but I found two cases.

  This user uses macOS and Python tried UTF-8. But .netrc was not UTF-8.

  This user uses Windows. They write .netrc with UTF-8, but Python used cp932.


There are several options:

* Use UTF-8. If user encountered UnicodeDecodeError, user need to change the .netrc encoding.
* Use UTF-8 with "surrogateescape" or "replace" error handler. non-UTF-8 in comments are ignored.
* Use latin-1. non-ASCII characters in comments are ignored.
Date User Action Args
2021-04-14 08:11:15methanesetmessages: + msg391043
2021-04-14 05:18:49methanesetnosy: + xiang.zhang
2021-04-05 12:46:50methanecreate