Avatar billede w13 Novice
25. juni 2008 - 12:28 Der er 8 kommentarer og
1 løsning

ISO-8859-1-streng fra e-mail tolkes forkert på UTF8-side

Hej Eksperter.

Så til mit 3. PHP-spørgsmål i dag;

Jeg sidder og brygger et webmailsystem sammen (i UTF8-charset), men når en mail er i ISO-8859-1 og Subject indeholder specialtegn, f.eks. "æ", så bliver hele subject ret underlig.

F.eks. har jeg givet en mail emnet:
Tæst
Hvilket bliver tolket som:
=?iso-8859-1?B?VOZzdA==?=

Når jeg ser denne mail i squirrelmail, står der dog korrekt "Tæst".

Jeg har ikke set denne version af ISO vs. UTF før.
Men der burde vel næsten være en funktion, der rettede dette, eller hvad? :)

På forhånd tak!
Avatar billede jakobdo Ekspert
25. juni 2008 - 13:37 #1
Kig på funktionerne:

utf8_encode() og utf8_decode()
Avatar billede w13 Novice
25. juni 2008 - 13:41 #2
Jep, dem har jeg været igennem, men de gør desværre ingen forskel.

Det er jo heller ikke helt normalt, at ISO/UTF-konflikter resulterer i en streng á la:
=?iso-8859-1?B?VOZzdA==?=
Avatar billede jakobdo Ekspert
25. juni 2008 - 13:47 #3
Har du adgang til funktionen: iconv_mime_decode() ?
Hvis ja, så prøv at kig på: http://dk.php.net/manual/en/function.iconv-mime-decode.php
Avatar billede pidgeot Nybegynder
25. juni 2008 - 13:53 #4
E-mails er fra en tid hvor den 8. bit i en byte ikke kunne bruges, så af hensyn til bagudkompabilitet skal et emne med et 8-bit tegn skal omkodes. Der bruger man MIME's Encoded-Word-teknik (RFC 2047).

Wikipedia har naturligvis noget om det: http://en.wikipedia.org/wiki/MIME#Encoded-Word

Du skal vist selv lige dele strengen op i de dele den består af, men når du har gjort det, kan du bruge enten imap_qprint eller base64_decode til at omdanne indholdet (afhængigt af kodningstypen).

Du skal bruge iconv bagefter for at få det over i UTF-8 (utf8_encode er ikke godt nok, fordi det ikke er sikkert det lige er iso-8859-1 der er brugt som tegnsæt).

Apropos, så så jeg dit regex-spørgsmål tidligere - husk også at få tegnsættet med der.
Avatar billede pidgeot Nybegynder
25. juni 2008 - 13:54 #5
...jakob kendte så en smartere funktion jeg ikke var klar over fandtes :)
Avatar billede jakobdo Ekspert
25. juni 2008 - 14:00 #6
pidgeot: Det var jeg heller ikke, men det var google.com :o)
Avatar billede w13 Novice
25. juni 2008 - 14:33 #7
Og med iconv_mime_decode() fungerer det da bare!

Endnu engang må du lige oprette et svar, Jakobdo! :)

Pidgeot>> Ja, det med tegnsættet har jeg også ordnet! :) Tilpassede det lige, så det henter begge dele.
Avatar billede jakobdo Ekspert
25. juni 2008 - 14:39 #8
Svar!
Avatar billede jakobdo Ekspert
25. juni 2008 - 14:57 #9
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester