Autor Zpráva
Celebi
Profil
Mám stránky, které dávám dohromady v php+SQL. Nedáří se mi ale najít společné kódování češtiny, které by umožnilo zobrazot všechny znaky normálně. Zkoušel jsem už všechno možné, ale vždycky jsem narazil na jeden problém:
Buď nefungoval text (konkrétně písmena s háčky a čárkami), který jsem nevypisoval ze SQL databáze nebo naopak (případy kdy nefungovalo ani jedno pomíjím).
Na jaké kódování mám nastavit stránky a případně i SQL databázi?
Předem děkuji za pomoc.
fimmos
Profil
zkus zkusit hledání tady...
rada_losik
Profil
No tak mě to funguje tak že když zapíšu do SQL z PHP (přes web) tak mi to běží s háčkama na webu normálně. Ale rychle upravuju tabulky přes příkazový řádek, tam když použiju diakritická znaménka tak se mi na webu zobrazí takový ty značky že to nezné, ale v příkazovém řádku mi to šlape normálně.

Nevím jestli je to přesně kodováním, ale zkus vedle výpisu z SQL napsat ěščřžýáíé a pak SQL a uvidíš kde je problém.
igamenir
Profil
Podobný problém se řeší každou chvíli - na WarForu vím o dvou případech, tady taky, a jeden z nich jsem byl já. Způsobuje to nejspíš rozdílné zpracování národních sad v novějších MySQL (dělá mi to v 5.0, ale možná do už má 4.1)

Zkus nastavit pole v tabulce na NATIONAL, např. pokud máš VARCHAR(20) tak to změň na NATIONAL VARCHAR (20). Nebo nastav na kódování na utf-8, ale ono je to možná to samé.
rada_losik
Profil
Podobný problém se řeší každou chvíli - na WarForu vím o dvou případech, tady taky, a jeden z nich jsem byl já. Způsobuje to nejspíš rozdílné zpracování národních sad v novějších MySQL (dělá mi to v 5.0, ale možná do už má 4.1)

Zkus nastavit pole v tabulce na NATIONAL, např. pokud máš VARCHAR(20) tak to změň na NATIONAL VARCHAR (20). Nebo nastav na kódování na utf-8, ale ono je to možná to samé.


Kde se nastavuje toto kódovaní když používám jen příkazoví řádek pro SQL? Mam celkem starou verti 4.0. Dá se to nějak nastavit podobně jako v PHP (php.ini).

Děkuji
Celebi
Profil
Zkoušel jsem všechno možné kódování a vždycky mi blbne jedno: Buď normální text nevkládaný z mysql nebo text vypisovat z mysql.
igamenir
Profil
rada_losik (omlouvám se za zdržení odpovědi)
Nemyslím nějaké globální nastavování - na tom tolik nezáleží (mně to vypíše, že pracuji na latin1_swedish). Nastavuju to přímo sloupci v tabulce, což se změní nějak takhle:
ALTER TABLE `jmeno_tabulky` CHANGE `jmeno_sloupce` `jmeno_sloupce` NATIONAL VARCHAR(delka) NOT NULL

Ale po dlouhém zkoušení myslím, že to udělá asi to samé co tohle:
ALTER TABLE `jmeno_tabulky` CHANGE `jmeno_sloupce` `jmeno_sloupce` VARCHAR(delka) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL


Celebi
Také jsem to řešil hodně dlouho, ale to NATIONAL všechno vyřešilo.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0