[linux-l] quoted printable dekodieren
Boris Kirkorowicz
borisbelug at kirk.de
Do Jul 8 09:13:26 CEST 2021
Hallo,
Am 08.07.21 um 01:39 schrieb Frank Reker via linux-l:
> Am Mi 07. Jul 2021 15:40 +0200 schrieb Ralph Angenendt via linux-l:
>
>> echo "=C3=84lles m=C3=ABt =C3=9Cml=C3=A4=C3=BCten" | python -m quopri -d
>
> oder mit recode:
> echo "=C3=84lles m=C3=ABt =C3=9Cml=C3=A4=C3=BCten" | recode utf-8/quoted-printable..utf-8
das habe ich sogleich auch noch ausprobiert, stoße damit jedoch auf ein
Problem. Auf der Kommandozeile funktioniert es, auch in der Sequenz
> line='=C3=84lles m=C3=ABt =C3=9Cml=C3=A4=C3=BCten'
> newline=$(echo $line | recode utf-8/quoted-printable..utf-8)
> echo $newline
Aber in meinem Script erzeugt es die Fehlermeldung
> recode: Ungültige Eingabe bei Schritt »Quoted-Printable..data«
In der resultieren Datei findet sich kein einziger Umlaut, dafür etliche
leere Zeilen. Vermutlich werden Zeilen, die dekodiert einen Umlaut
enthalten, einfach leer ausgegeben. Das ist für mich umso erstaunlicher,
da die Ausführung des Beispiels auf der Kommandozeile funktioniert.
Irgendeine Idee dazu?
Ach ja, der Kern meines Scriptes liest sich so:
> cat $file | while read line
> do
> # newline=$(php -r 'echo quoted_printable_decode("'"$line"'")."\n";')
> # newline=$(echo $line | python -m quopri -d)
> newline=$(echo $line | recode utf-8/quoted-printable..utf-8)
> echo $newline >> $outfile
> done
Am Rande: das Script mit benötigt mit recode 3 Minuten, 3 Sekunden.
--
Mit freundlichem Gruß Best regards
Kirkorowicz
Mehr Informationen über die Mailingliste linux-l