webForumDet fria alternativet

Använda mail() och ha med ÅÄÖ i subject m.m.

PHP

4 svar · 475 visningar · startad av s4ndp4pper

Medlem sedan juni 200422 inlägg
Frågan#1

Hej! Har ett script som skickar ett HTML-baserat mail. Jag måste använda ÅÄÖ i Subjectraden och avsändarnamnet... men det blir bara #%#€%#€% av allting. Testade att spara scriptet i UTF-8 och använda entities, men det gick rätt igenom utan att göras om till bokstäver.

Hjälp hjälp, vad göra? /Johan

(Finns det en tidigare tråd om detta så hänvisa gärna dit, jag är smått stressad och bakfull just nu så jag hittade inget...)

Medlem sedan mars 20034 471 inlägg
#2

Jag TROR att problemet är teckenkodningen UTF-8. Om jag förstått rätt så måste å, ä och ö bytas ut till fula saker eftersom dessa tecken helt enkelt inte får plats i de antal bitar som UTF-8 använder. Så UTF-8 löser problemet genom att lagra infon i dubbelt utrymme, där den första delen talar om att detta är ett konstigt specialtecken, mer info i nästa del...

Måste du använda UTF-8 i mail(), eller kan du byta till annat teckensystem? (Jag har ingen aning om hur mail() funkar.)

Medlem sedan apr. 20012 427 inlägg
#3

Kör ämnessträngen genom nedanstående funktion så fixar det sig. Hittade funktionen i PHP-manualen.

function encode_iso88591($string){

    $text = '=?iso-8859-1?q?';

    for ($i = 0; $i < strlen($string); $i++) {

        $val = ord($string[$i]);

        $val = dechex($val);

        $text .= "=$val";

    }

    $text .= '?=';

    return $text;

}
Medlem sedan aug. 2000374 inlägg
#4

Re: Använda mail() och ha med ÅÄÖ i subject m.m.

s4ndp4pper skrev:

Hjälp hjälp, vad göra?

<?php

$string = "En sträng i UTF-8";
echo mb_encode_mimeheader( $string, "UTF-8", "Q" ), "\n";

?>
Medlem sedan juni 200422 inlägg
#5

:e :e :e TACK!!

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)