Autor Zpráva
Luky029
Profil *
Zdravim, uz si nevim rady s češtinou. Posilam e-maily přes phpmailer a když si necham poslat:
ABCDEFGHIJKLMNOPQRSTUVWXYZÁÄÉĚËÍÓÖÚŮÜÝŠČŘŽĎŤŇ
doručí se tohle:
ABCDEFGHIJKLMNOPQRSTUVWXYZÁÄÉĚËÍÓÖÚŮÜÝ ŠČŘ ŽĎŇ

kodovani nastaveno na ISO-889-2 zkousel jsem i UTF-8, výsledek je stejný.

Ví někdo jak to vyřešit?

diky
Luky029
Profil *
no abych to trochu ujasnil místo ŠŽŤ dá mezery
nethor
Profil
Mrkni, jak máš v class.phpmailer.php nastaveno public $CharSet .
mělo by to být stejné, jako kódovánístr. ve které je formulář.
Mě to v těle zprávy funguje OK. - tedy kromě předmětu (Subject) to jsem nerozchodil nikde.
Luky029
Profil *
tam mam:
public $CharSet = 'iso-8859-2';

:-(
nightfish
Profil
Luky029:
podívej se na http://hrazdil.info/blog/15-posilani-mailu-v-php-pomoci-phpmaileru
skript, kterým nastavuješ parametry a odesíláš e-mail, ulož v kódování UTF-8 a bude ti to fungovat (včetně předmětu)
pokud by se v diakritice vyskytl problém, tak je na 99% způsoben tím, že jsou data ve špatném kódování (ať již v souboru, či načtená z databáze)
nethor
Profil
Myslel jsem, že je to neřešitelné - když mi i z této diskuse chodí předmět 'Diskuse, pspvek na tma: PHPmailer problm s etinou' :-)

Luky029:
trochu jsem stím laboroval; funguje mi to OK, jen když mám kodování stránky, ze které odesílám nastaveno
také na iso-8859-2
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
,
jinak to s
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> 
dělá přesně to, co píšeš.
a s
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

je to ještě horší.
Ve zdroji došlé zprávy se ale znaky zobrazí - to celkem nechápu.
Luky029
Profil *
Tak pro mě úlet, ale když kod napíšu v poznámkovém bloku, tak je vše OK. Dříve jsem to psal v PSPadu.
nightfish
Profil
Luky029:
Dříve jsem to psal v PSPadu
v PSPadu je menu Formát, ve kterém lze zvolit kódování
nightfish
Profil
nethor:
pokud máš data v iso-8859-2 (což je dle tvého příspěvku pravda), nastavit kódování na jiné (v sekci <head>) nedává smysl
nethor
Profil
S PSPadem jsem měl také problémy
S kódováním mi nezazlobil jen Notepad++ , doporučuju.
Luky029
Profil *
Tak když dám v PSPadu v nastavení iso-8859-2 a pak uložím, tak to všechno jede jak má...
Irjo Zagata
Profil *
Za předpokladu, že máme text zprávy uložen ve stejném kódování, jaké chceme nastavit pro odesílání a toto kódování se liší od PHPMailer default (iso-8859-1), nestačí nastavit

$mailobjekt->CharSet = 'utf-8'; // (například - s jinými kódy než utf-8 jsem to nezkoušel, ale podstata je pravděpodobně v odlišnosti od default)

Musíme ve zdrojovém kódu class.phpmailer.php přepsat řádek

public $CharSet = 'utf-8';

Tímto naše preferované kódování použijeme jako PHPMailer default, jinak bude PHPMailer tvrdošíjně odesílat zprávu v iso-8859-1
Příčinu jsem zatím nehledal, ale toto vlákno mě nakonec po dlouhém bádání přivedlo k úspěšnému řešení problému.

Na tuto (podle mě chybu) jsem narazil ve verzi 5.1:
* @version $Id: class.phpmailer.php 447 2009-05-25 01:36:38Z codeworxtech $

Stopa na Notepad++ & PSpad je zavádějící - s tím to nesouvisí, pokud máte pod kontrolou, v jakém kódování opravdu soubor ukládáte.

Dále pokud generujeme zprávu v HTML, nesmíme zapomenout vygenerovat také meta-tagy pro jazyk a kódování (ještě před tagem <title>), v našem případě :

<meta http-equiv="Content-Language" content="cz">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

jinak sice bude čitelný předmět, ale samotný obsah čitelný být nemusí (html obsah je již interpretován na straně adresáta)

Tak snad to nebyl "blábol" a bude to ještě někomu užitečné. V opačném případě jsem smířen s tím, že mě moderátor brzy smaže ;-)
Scorpikx
Profil *
Zdravim,

rozjel jsem pomoci PHP maileru odesilani mailu pomoci formulare na mnou zvoleneho adresata.
Udelal jsem si HTML sablonu do ktere vkladam osloveni a datum, ale kdyz moje osloveni obsahuje diakritku tak skript toto pole ignoruje a mail prijde bez techto slov.
Da se nastavit primo diakritika techto poli??

Děkuji za info
Davex
Profil
Scorpikx:
Udelal jsem si HTML sablonu do ktere vkladam osloveni a datum, ale kdyz moje osloveni obsahuje diakritku tak skript toto pole ignoruje a mail prijde bez techto slov.
Podíval jsem se do křišťálové koule a ta ukazuje, že se ve skriptu používá funkce htmlspecialchars() bez uvedeného kódování.

Da se nastavit primo diakritika techto poli?
Nastavuje se kódování celé stránky s formulářem pomocí <meta charset>.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: