On Tue, Oct 8, 2024, at 08:55, Jan Eden via Mutt-users wrote:
> with open('/var/tmp/htmlfile', 'w', encoding='iso-8859-1') as tmp_file:
>       ...
>
> but this only changed the error message to:
>
> 'latin-1' can't encode character '...' in position ...: ordinal not in
> range(256)

You can tell open() how to handle errors with the 'errors' keyword. See 
https://docs.python.org/3/library/functions.html#open:

---
errors is an optional string that specifies how encoding and decoding errors 
are to be handled—this cannot be used in binary mode. A variety of standard 
error handlers are available (listed under Error Handlers), though any error 
handling name that has been registered with codecs.register_error() is also 
valid. The standard names include:

    'strict' to raise a ValueError exception if there is an encoding error. The 
default value of None has the same effect.

    'ignore' ignores errors. Note that ignoring encoding errors can lead to 
data loss.

    'replace' causes a replacement marker (such as '?') to be inserted where 
there is malformed data.
---

You're not setting it, so it's the same as it being 'strict'. I'd try with 
'replace', so you can see characters that were replaced and were potentially 
problematic.

Cheers,

-- 
José María (Chema) Mateos || https://rinzewind.org

Reply via email to