LAMP - české znaky na webu

Vladimír Pešta

LAMP - české znaky na webu
« kdy: 23. 10. 2014, 16:13:58 »
Dobrý den,
v současné chvíli řeším linux server, kde je nainstalovaný linux, apache, mysql, php. Při nahrání webových stránek se mi na webu špatné zobrazují české znaky, ale pouze u položek, které se stahují z databáze. Na jiném hostingu je vše ok. V databázi je nastaveno korektně utf-8 a v nastavení php je nastaveno default charset=utf-8. Bylo mi řečeno, že by mělo stačit do linuxu doinstalovat nějaký balíček. Mohl by mi někdo poradit o co jde? Děkuji.


Dzavy

Re:LAMP - české znaky na webu
« Odpověď #1 kdy: 23. 10. 2014, 16:36:06 »
A co mas v SET NAMES po pripojeni PHPka?

j

Re:LAMP - české znaky na webu
« Odpověď #2 kdy: 23. 10. 2014, 17:31:03 »
1) nejak ulozeny jsou data v DB
2) nejaky kodovani pouziva connection do databaze
3) nejaky kodovani posila apache

Pokud mas vse nastaveny spravne, pak to funguje "samo"

napr, pokud bys mel data v databazi jako win1250 (pochopitelne radne oznaceno), ale pripojeni bys proved jako utf8, tak to mysql samo prekoduje (tam i zpet), ovsem musis zajistit, ze na vstupu bude vzdy utf8 a na vystupu taktez.

To ze ti to nefunguje === neco mas nekde blbe.

a) over si, v jakym kodovani je to, co vidis na webu. Pokud to nejake ma, tak to znamena, ze mas neco jinyho v textech z php a neco jinyho v connection/databazi.
b) pokud to zadne kodovani nema(= ani iso, ani win ani utf ti nezobrazi znaky) = ty sice v databazi o datech tvrdis, ze jsou v nejakym kodovani, ale ukladas je v jinym.

Pokud si ses 100% jistej tim, ze data v databazi jsou utf-8, a nechces (spravne) nastavit connection (trebas proto, ze pouzivas nejakou appku, do ktery se nechces hrabat), tak muzes v mysql nastavit default. Da se tam dokonce nastavit, ze ma ignorovat nastaveni zvenku v ramci connection. Hledej character-set-server, skip-character-set-client-handshake

Re:LAMP - české znaky na webu
« Odpověď #3 kdy: 23. 10. 2014, 19:17:23 »
a pak do toho vstupuje jestli jsi neupravoval php soubory (nebo i jine treba z template) ve widlich ktery ti je ulozi jako pojebany 1250

o zadnym specialnim balicku v tomto smeru nevim. jen vim, je potreba z celyho kolotoce vymazat widlous. no a samozrejme poresit si pri prenosu DB jestli na puvodnim stroji nebyla latin1
Děkuji za možnost editace příspěvku.

Kit

Re:LAMP - české znaky na webu
« Odpověď #4 kdy: 23. 10. 2014, 19:28:55 »
První SQL dotaz, který pošleš po každém připojení k DB, musí být

Kód: [Vybrat]
SET NAMES utf8
Je možné, že jinde to mají nastaveno jako default.


Vladimír Pešta

Re:LAMP - české znaky na webu
« Odpověď #5 kdy: 28. 10. 2014, 15:41:51 »
Zdravím, moc děkuji za rady. :-) Nakonec se vše vyřešilo. Kamarád psal web na php verze 5.5 a na serveru bylo nainstalováno 5.3.3. tím pádem php neumělo s některými věcmi pracovat. :-) Ale narazil jsem na další zádrhel. Odesílání mailů pomocí php. Na serveru používáme postfix. Je nainstalovaný a pokud odesílám mail z terminálu, tak mi bez problému odejde. Přes php kontaktní formulář na webu, ale neodejde nic. Máte nějakou radu? Díky.

j

Re:LAMP - české znaky na webu
« Odpověď #6 kdy: 29. 10. 2014, 17:05:44 »
1) nemas povoleny odesilani z php
2) zarizne ti to neco v postfixu (to bys videl v jeho logu)

Vladimír Pešta

Re:LAMP - české znaky na webu
« Odpověď #7 kdy: 03. 11. 2014, 19:59:37 »
Jo, programátor, co dělal web udělal chybu v kodu php, takže zde byl celý zádrhel. Bohužel mi svatosvatě tvrdil, že on to má dobře.