Toon posts:

[Perl] Email naar 'platte tekst' datamining

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een perl script om specifieke data uit emails te halen en deze in een database te zetten voor latere verwerking. Werkt allemaal perfect behalve met de codering van de email.

De emails zijn afkomstig van ebay.nl en zijn multipart (zowel tekst/html). Ze worden opgehaald van een pop3 server en dmv MAIL::POP3Client. Echter, de opmaak van deze email bevat een bepaalde codering die ik graag naar 'platte tekst' wil omzetten voordat deze 'geparsed' wordt.

Voorbeelden van codering uit email
  • Details voor objectnummer:=A054763584329 waarbij '=A0' een NO-BREAK SPACE is.
  • Copyright =A9 2006 eBay, Inc. waarbij '=A9' het copyright © teken is.
  • ?ReturnUserEmail&requested=3DFdeBoer&iid=3D543249231 waarbij '=3D' het = teken is
Ik heb gezocht hoe ik deze codering in één keer kan omzetten naar een beter leesbaar formaat, maar helaas nog geen antwoord kunnen vinden.

Mijn vragen zijn:
  1. Welke codering is dit?
  2. Hoe zet ik deze codering in 'leesbare' tekst om (dus gewoon '=' i.p.v. =3d ?)

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03-2025
URL encoding is volgens mij wat je zoekt.

Voor de rest zijn er genoeg voorbeelden te vinden via Google nu je de juiste codering weet :)

Vrij simpel, je zoekt in de ascii tabel naar de hexnotatie die in je string staat en zorgt dat je het corresponderende character terugkrijgt...

Verwijderd

Topicstarter
Ik heb het probleem nu met de onderstaande regexp opgelost.

code:
1
s/=([a-fA-F0-9]{2})/chr(hex $1)/eg;


Deze regexp vervangt alle (=hex) door platte ascii code.

Bedankt voor de snelle reactie.

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 28-02 13:21
Quoted Printable is de encoding waar jje naar op zoek bent.

Verwijderd

Topicstarter
stekkel schreef op vrijdag 10 maart 2006 @ 14:45:
Quoted Printable is de encoding waar jje naar op zoek bent.
Idd, het is Quoted Printable. Dat is een stuk makkelijker zoeken :D

MIME::QuotedPrint::Perl -> maar even proberen of dit alles in een keer oplost.

Bedankt alvast