Jak převést q-encoding text do ISO-8859-2
Třeba: "Subject" z mailove zpravy, napr:
=?iso-8859-2?Q?Tonda_Pecl_p=ED=B9e_z_webu?=
Aby to rozumně fungovalo, je třeba podporovat ještě aspoň UTF-8 kódování. Mohu napsat v Perlu program, který to dekoduje, nebo můžeš použít něco hotového. Třeba Mail::Message::Field::Full.
Dokumentace, která se toho týká je na cpan a hledej slovo „decode“.
Triviální příklad užití:
veronika@eowin:~$ perl -e ' use Mail::Message::Field::Full; print Mail::Message::Field::Full->decode( "jak? =?utf-8?B?c2U9bcOhxaE/?=" ), "\n";' jak? se=máš?
Pro pouřití něčeho hotového hovoří příklad
jak? =?utf-8?B?c2U9bcOhxaE/?=
který ukazuje, že info o kodování nemusí být na začátku.
Obecný princip interpretace kodu je takový, že dva hexa znaky za rovnítkem přečtu jako číslo z intervalu 0..255 a celou trojici =.. nahradím jediným znakem byte(..). Po té se podívám, jaká znaková sada byla použita a případně text převedu do té, v níž pracuji.
