Marco Moock in de.comp.os.unix.shell:
>Am 19.10.2022 um 11:59:15 Uhr schrieb Stefan Ram:
>> Ich vermute, das "?B?" steht für "base 64", daher:
>
>Danke, das war es. War seitens mit mal wieder GIGO mit iconv.
"GIGO" würde ich nicht sagen. Das waren ja alles ASCII-Zeichen im
Input, und da ASCII eine Untermenge von UTF-8 und von ISO-8859-1
ist, kommt da das gleiche wieder heraus.
>Aber warum steht dann in der gleichen Zeile noch was von UTF-8?
Das hat Karl ja schon erklärt. Ich habe mir mit Python3 folgendes
Script geschrieben:
| t20$ cat mime-encoded-words20a.py
| #!/usr/local/bin/python3
| from email.header import decode_header
| a1=decode_header('=?UTF-8?B?w7xiZXJob2xlbiwgenVzYW1tZW5zdG/Dn2Vu?= und =?UTF-8?B?cMO2YmVsbg==?=')
| for b2 in a1:
| if b2[1] == None:
| c3='ascii'
| else:
| c3=b2[1]
| print(bytes.decode(b2[0],encoding=c3),end='')
| print()
<
https://docs.python.org/3/library/email.header.html?highlight=mime#email.header.decode_header>
"decode_header" produziert für jedes "encoded word" (und auch für
die nicht kodierten Teile) ein Paar "(decoded_string, charset)".
Die Ausgabe des Scripts (mit "od" 'Terminal-safe' gemacht):
| t20$ ./mime-encoded-words20a.py | od -A n -t c
| 303 274 b e r h o l e n , z u s a
| m m e n s t o 303 237 e n u n d
| p 303 266 b e l n \n
Auf einem UTF-8-Terminal sollte das dabei herauskommen:
| t20$ ./mime-encoded-words20a.py
| überholen, zusammenstoßen und pöbeln
| t20$
Marcel gklc (545452)
--
╭───────╮ ╭──────────╮ ╭─────╮ ╭────────────╮ ╭────╮
╰────╮ ╰──╮ ╭────╮ ╰────────╮ │ ╰───╮ ╰──╮ ╰─╮ ╭──╯ ╰──╮ │
╭──╯ ╭──╯ │ ╰──╮ ╭──╯ ╰───╮ │ ╭─╯ ╭─╯ ╭────╯ ╭─╮ ╭─╯ │
───╯ ╰─────╯ ╰─────╯ 71f3ab ╰──╯ ╰────╯ ╰──────╯ ╰──╯ ╰─