Portál AbcLinuxu, 6. května 2025 01:37
mám takový shellový skriptík, který vysekávý z maillogu postfixu hlavičky mailů a dává je do databáze.
chtěl bych ještě dořešit problém s kódováním, neboť v tom postfixu se "subject" (pokud obsahuje češtinu) zapíše např takto:
=?utf-8?Q?=C4=8De=C5=A1tin=C3=A1?=
nebo
=?iso-8859-2?Q?po=E8=EDta=E8?=
Chtěl bych, aby se předměty do DB ukládaly rovnou s českými znaky. Zkoušel jsem to stylem:
sed "s/=C5=A1/š/g" mailheaders | sed "s/=C5=A0/Š/" | ……... > mailheaders.cz
...což sice funguje, ale jen u mně na počítači, ale na serveru ne, protože ten zřejmě české znaky neumí. Další věc je, že si myslím, že bude určitě existovat nějaký elegantnější způsob, je to tak?
Tento zápis se řídí podle RFC 2047 a použít můžete třeba perlový modul Email::MIME::RFC2047::Decoder:
$ printf '=?iso-8859-2?Q?po=E8=EDta=E8?=\n' | perl -Mopen=:locale -MEmail::MIME::RFC2047::Decoder -ple '$_=Email::MIME::RFC2047::Decoder->decode_text($_)' počítač
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.