Portál AbcLinuxu, 9. května 2025 00:35
Subject: =?iso-8859-2?Q?P=F8ed=E1vac=ED_protokol-archiv?=
ideálně v bash scriptu s výstupem utf8 ...
Na netu jsem našel řešení s pythonem, ale pro bash + standatdní příkazy jako reformail a pod. jsem nenašel nic.
Víte někdo o takovém řešení ?
předem díky
Milan
Řešení dotazu:
/usr/bin
? Proč by to nemohl být pythoní script? Nebo script v perlu? To co je v hlavičce je jasně text zakódovaný pomocí MIME quoted-printable s definicí znakové sady mezi prvními 2 otazníky. v Perlu je pro MIME zpracování knihovna perl-MIME-tools. Pak ten script zavolám bashi a mám co potřebuji.
import re, string, sys
from email.header import decode_header
import codecs
def getheader(header_text, default="ascii"):
"""Decode the specified header"""
headers = decode_header(header_text)
header_sections = [unicode(text, charset or default) for text, charset in headers]
return u"".join(header_sections)
UTF8Writer = codecs.getwriter('utf8')
sys.stdout = UTF8Writer(sys.stdout)
if len(sys.argv) > 0:
hdr=sys.argv[1]
a=getheader(hdr)
print u''+a
else:
print "error"
V bashi pak
subj=`cat "$bfile" | reformail -x Subject:`
subjd=`python /root/bin/maildec.py "$subj"`
Snad to jde jednodušeji, ale líp jsem to nesesmolil.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.