PHP Utf-8 karakterkódolású karaktereket Internet Explorerből email-en keresztül hogy lehet elküldeni, hogy ne krix-kraxos karakterek jelenjenek meg pl:az ékezetes betűk helyén?
A PHP fájlba küldött adatok tökéletesen jelennek meg
az ilyen fajta bekérés során:
if (strlen(test_input($_REQUEST['comment'])) > 0){
--$comment = test_input($_REQUEST['comment']);
}else{
--$comment = test_input(utf8_encode($_REQUEST['comment']));
}
Ellenben, ha PHP fájlon belül szeretnék ékezetes karaktereket létrehozni az már nem megy:
pl: $ekezetes = "Helló világ";
Ezt így elküldve emailben az inputon küldött üzenet átmegy normálisan, a mellé írt $ekezetes már nem.
Mi a megoldás, hogy a helyben deklaráltakat is átküldje normálisan?
(már próbáltam az utf8_encode("Helló világ") / utf8_encode($ekezetes) megoldásokat)
*A test_input($data){ //saját függvény
Eltávolítja a felesleges szóközöket:trim($data)
'\' karaktereket: stripslashes($data);
Speciális karaktereket átír: htmlspecialchars($data)
return $data;
}
Az, egyik, hogy az a utf8_encode nem mindig jó megoldás, nekem sokszor az gányolja össze. Ami inkább működik, hogy a php legfelső sora a következő legyen:
header('Content-Type: text/html; charset=utf-8');
A másik: az emailben is állítsd át a karakterkódolást utf8-ra az email headerben, azaz:
mail("emailcím","Tárgy","Üzenet",éééés ide jön a header mint negyedik paraméter");
amely header így nézzen ki:
"Content-type:text/plain; charset=utf-8\r\n"
azaz például:
mail("valami@email.com","Üzenet","Ezt az üzenetet teszt jeleggel küldtem","Content-type:text/plain; charset=utf-8\r\n");
Ez fut chromban is?
Van egy olan megoldásom, ami működik exploreres mail-ben, de többi böngészőben nem: utf8_decode(string)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!