Ik wil met php mailtjes kunnen sturen naar klanten met hun naam erin. Nou hebben die namen soms buitenlandse karakters. Bijvoorbeeld Duiters met umlauts: ä, Hongaren met dit soort tekens: ă Ą ň ő ş en zelfs Japanners (あ え お).
Ik heb deze namen in php als utf-8 strings. Zonodig kan ik ze converteren naar alle gebruikelijke codepages, alleen weet ik nooit zeker welke codepage voor iemand het meest geschikt is (heb geen land ofzo waar ze vandaan komen, en dan nog zou er ook best iemand met een Japanse naam vanuit de VS kunnen mailen).
Hoe kan ik het beste die mailtjes sturen? Als text/plain utf-8, of als text/html utf-8 (dan moet ik ook de mail body omzetten naar html, nu is dat normale text). Of nog anders?
Ik heb zeg maar dit:
Nu gaat dit niet goed, omdat lang niet alle email clients die utf-8 plain text goed displayen, ook niet als er alleen tekens in staan die in de codepage van het betreffende systeem kunnen worden weergegeven.
Ik dacht eraan om die strings even te scannen, en als er geen unicode chars boven de 127 in zitten, dan gewoon zoals hierboven sturen (eventueel kan die content-type header er dan nog wel uit ook).
Hoe kan ik het beste mailen als er wel "enge" karakters in zitten?
Ik heb deze namen in php als utf-8 strings. Zonodig kan ik ze converteren naar alle gebruikelijke codepages, alleen weet ik nooit zeker welke codepage voor iemand het meest geschikt is (heb geen land ofzo waar ze vandaan komen, en dan nog zou er ook best iemand met een Japanse naam vanuit de VS kunnen mailen).
Hoe kan ik het beste die mailtjes sturen? Als text/plain utf-8, of als text/html utf-8 (dan moet ik ook de mail body omzetten naar html, nu is dat normale text). Of nog anders?
Ik heb zeg maar dit:
code:
1
2
3
4
5
6
7
8
9
| $naam = "Hier kunnen buitenlandse tekens in voorkomen"; // utf-8 $body = "Dear ".$naam.",\n"; $body .= "Bla bla enzovoort"; $header = "From: mij@hier.com\n"; $header .= "Content-Type: text/plain; charset=utf-8"; mail( $to_address, $subject, $body , $header ); |
Nu gaat dit niet goed, omdat lang niet alle email clients die utf-8 plain text goed displayen, ook niet als er alleen tekens in staan die in de codepage van het betreffende systeem kunnen worden weergegeven.
Ik dacht eraan om die strings even te scannen, en als er geen unicode chars boven de 127 in zitten, dan gewoon zoals hierboven sturen (eventueel kan die content-type header er dan nog wel uit ook).
Hoe kan ik het beste mailen als er wel "enge" karakters in zitten?