Avatar billede LuckyJack Nybegynder
13. februar 2012 - 14:34 Der er 6 kommentarer og
1 løsning

php sender mails med underlige æøå

Hej eksperter

Jeg går lige til sagen. I mange dage nu har jeg forsøgt at forstå php's måde at tyde æøå, og jeg har været mange forums igennem (incl. eksperten.dk) men uden at finde den optimale løsning.

Når man sender fra en html-form til et php script, og man man sender videre fra scriptet til en mail-adresse så kan man i fx hotmail godt se æøå, men i fx thunderbird mail kan man ikke:

Eksempel fra Hotmail:
Navn: Søren Vilhelmsen

Eksempel fra Thunderbird:
Navn: søren Vilhelmsen

En lappeløsning er denne php funktion:
function convertChar($stringToEdit)
{
  $search =
    array("æ","ø","Ã¥","Æ","Ø","Ã...","æ","ø","å","Æ","Ø","Å");
  $replace =
    array("æ","ø","å","Æ","Ø","Å","æ","ø","å","Æ","Ø","Å");
  $text = str_replace($search, $replace, $stringToEdit);
  return $text;
}
$navn = $navn; //navn uden der bliver gjort noget så det
                virker i hotmail med æøå.
$navn2 = convertChar($navn); //navn som virker i Thunderbird
                              med æøå

Dvs. jeg sender det samme navn afsted 2 gange for at sikre mig at det vises rigtigt mindst 1 gang:

Eksempel fra Hotmail:
Navn: Søren Vilhelmsen
Navn2: S�ren Vilhelmsen

Eksempel fra Thunderbird:
Navn: søren Vilhelmsen
Navn2: Søren Vilhelmsen

Findes der ikke en løsning på dette problem, således at jeg slipper for at sende navnet og andre felter 2 gange?

Mht. Encoding så bruger jeg i mit php-script:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Og min form har også en encoding:
<form name="contactform" method="post" action="form-script.php" charset=utf-8>

Håber i kan hjælpe.
Mvh. LuckyJack
Avatar billede majbom Novice
13. februar 2012 - 14:40 #1
start med at bruge UTF8 hele vejen rundt - alt andet er spild af tid og giver dig grå hår (som du tilsyneladende allerede har fundet ud af :))

alle filer skal encodes som utf8, ikke bare headers, men også selve filen, når du gemmer den, skal dens encoding sættes til utf8
Avatar billede LuckyJack Nybegynder
13. februar 2012 - 15:13 #2
Grå hår, ja tak :)

Det vil sige at man ikke blot kan lave en .txt fil og ændre den til .php. Men man skal lave den i en web-editor (fx netBeans) og så gennem filen til utf8.

Det giver meget mening eftersom det er det eneste jeg nærmest ikke har prøvet.

Jeg vender tilbage når det er prøvet...
Avatar billede olsensweb.dk Ekspert
13. februar 2012 - 15:53 #3
prøv at se dette spm http://www.eksperten.dk/spm/956890 #1 og 3
som som splazz skriver kør UTF-8 hele vejen rundt
vedr. thunderbird: er du opmærksom på du selv kan bestemme hvilke encoding der skal vises i ??
view -> character encoding
Avatar billede LuckyJack Nybegynder
16. februar 2012 - 11:18 #4
@ronols
Jeg vidste ikke at man kunne vælge hvilken encoding der skulle bruges. Men har en kunde som er en lidt ældre dame som ikke vil kunne forstå at gøre det. Ved ikke om hun bruger thunderbird, men det er sikkert det samme hun skal gøre i sin mail client.

Dvs. der er ikke noget at gøre ved det. Hvis encoingen er forskellig i de forskellige email clienter så kan man ikke ramme dem alle sammen, og samtidig kun sende navnet 1 gang.

@splazz
Jeg har prøvet at gøre alt til utf8, også php filen. Det virker også i hotmail, hvor den kan vise begge navne nu, og det kan den også i thunderbird HVIS man laver encoding om.

I skal have mange tak for hjælpen, det har været rigtig brugbart, og jeg synes jeg har lært noget.
Avatar billede majbom Novice
20. februar 2012 - 08:41 #5
har du angivet det i et metatag på den mail du sender også?

<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
Avatar billede LuckyJack Nybegynder
01. juni 2012 - 17:09 #6
123
Avatar billede majbom Novice
02. juni 2012 - 07:22 #7
??
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