Ahojte, mám problém, mam chat v PHP, Mysql, ak napíšem č po odoslaní formulára ho zobrazí ako ? taktiež ak niečo napíšem v azbuke tak všetko prevedie na ???? používam utf-8 pre php a skúsil som nastaviť aj mysqli charset na utf8 a bezúspešne. Vedel by mi niekto poradiť? Zaujímavé že ak napíšem ž š alebo ľ tak problém nie je, iba s č a azbukou.
Fórum › PHP
č prepíše na ?
js request header utf8, php header utf8, sql SET NAMES utf8.
A nebo muzes udlat takovou fintu fn, ze to prevedes na base64 a pres js dekodujes. Tam ti potom nemuze kecat ani php ani js do kodovani.
Jeste to muzes testnout tak, ze v tom ajaxu mas url i s udaji, tak si tu urm das primo do prohlizece v novem okne. Tak zjistis, jestli to kazi javascript nebo php nebo, kde se to kazi. V prohlizeci se da prepinat kodovani, tak to poprepinas tak, aby to zobrazovalo spravne, jestli se ti to podari. Aspon mozna zjistis, v jakem je to kodovani, kdyz uz nic.
Update. Súbory som spojil do jedného. Teraz je problém taký, že ak napíšem č alebo čokoľvek s č tak mi vyhodí Incorrect string value: '\xC4\x8D' for column 'msg1' at row 1
MSG1 je správa, ktora sa zapíše do db, ktorú práve píšem. Vedel by mi niekto pomôcť? Ak píšem s š dž všetko ok.. stále toto iba pri č.. všetky súbory aj js majú UTF8 + skusil som aj mysqli set charset utf8 ale vysledok totožný..
:)
Podivej, otevres si phpmyadmina.
1. Podivas se, jak mas nastavene pripojeni nebo zkusis vytvorit novou tabulku. Tam ti nabizi, jake ma pouzit colation.
2. Rozklikas tabulku a podivas se na strukturu pripadne jestli najdes nekde kodovani. Tam by mel ukazovat stejne kodovani, idealne. cili to utf8.
3. A ted, kdyz delas import, tak musis vedet v jakem kodovani mas soubor. Ted to zacne byt hrozne zajimave. Kdyz soubor udelas ve win, tak kodovani je win-1250 pro header() pro echo na obrazovku, ale i SET NAMES pro sql musis dat na win-1250. Db by si to pak mela spravne prekodovat do tabulky s utf8.
Vetsinou u prevodu starych db do novych pc je soubor v latin-swedish a db maji tabulky tez latin, SET NAMES je tez latin. Takze je dobre tam vzdycky vnutit vlastni prikaz nez spolehat na default nastaveni.
Kdyz treba delas SELECT z db a navic vypisujes soubor z win-1250, tak muzes pred SELECT pouzit SET NAMES pro utf8, php header pro uft8, ale soubor musis prekonvertovat pres iconv() nebo neco jako mb_conv() z w1250 na utf8. jinak se na obrazovce zobrazi nesmysly.
Spatne se to popisuje, udelat to je otazka asi minuty :) Tak je fajn, ze se ti to nejak podarilo.
Jeste se ti muze stat, ze to prave naimportujes se spatnym kodovani. Jakoze soubor mas w1250, ale das SET NAMES latin1 a tabulka bude utf8. Tak to pak uz z ni ve spravnem kodovani nikdo nedostane a je treba to pres php nejak opravit :)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Chci se naučit pracovat s dekorátory — založil Váchyč
PHP alebo SQL prirucka v ceskom alebo slovenskom jazyku — založil ppohoda
MessageDlg česky? — založil Sebix
Získanie čísla z char v C — založil nika
Chybi mi php interpreter — založil David
Moderátoři diskuze