Auto HI-FI Club CZ

autohifi,auto hi-fi,auto hifi,autohificlub,auto hi-fi club,club, klub,fórum,autorádio,autozesilovač,autorádio cd,autorádio mp3,autorádio dvd, tuning,srazy,tuningshow,klub,emma,dbdrag,tuning,autotuning,carstyling, tlumeni, Alpine,octavia,Brax,Denon,Clarion,Pioneer,Sony,panasonic,Helix, Dynamat,dego,Hertz,Audison,Fusion,McIntosh,Focal,Rockford Fosgate,Dynaudio,JBL,xenony,becker,jvc,kenwood,ground zero,dietz,morel doorboardy ,zapojeni,felicia,pioneer,peugeot,zastavba,audio,306,repro,golf,instalace,dls,4x100,FELICIE,morpheus,helix,audi(forum)

o

Forum > Ostatní > MySQL kodovani češtiny

 o Navštíveno 680x o
o 10.08.2010, 10:10 | Šestikule
Mám MySQL databází a v ní se přes HTML/PHP formulář opravují data. V připojení databáze mám nastaveno: mysql_query('set names cp1250');

Do databáze byla na začátku naimportovaná data z CSV ve Win1250. Když z té databáze pomocí HTML/PHP (charset na Win1250) čtu, tak se čeština ukazuje OK. Jakmile ale do databáze přes formulář vložím změnu, tak už se mi diakritika rozhodí. Např.
- naimportováno: Česká
- web ukazuje: Česká
- přes formulář editace na: Česká zbrojovka
- web ukazuje: ?eská zbrojovka

Co s tím? Díky.


o 10.08.2010, 13:36 | Šestikule
odpovím si sám :-), vyřešeno
o 10.08.2010, 13:49 | tmx.806
parada, to asi nekomu hodne pomuze, az bude mit podobny problem...
o 10.08.2010, 16:29 | Šestikule
no nepomůže, ale asi tu nikdo podobný problém neřešil, když se neozval. Samo, jestli to někoho zajímá, klidně to sem napíšu.
o 11.08.2010, 09:13 | AR
tipnu, měl si špatné kodování te stránky která zpracovávala tu editaci?
o 11.08.2010, 09:32 | Šestikule
ee, problém byl v nastavení SQL serveru. IT človíček nainstaloval Apache a MySQL, přičemž vše zůstalo ve výchozím latin1/latin1_swedish_ci akorát character_set_server byl utf8.

Tak jo, změníme tedy nastavení SQL, ale ouha, i když jsme se přihlásili jako root admin, nebylo možné v System Variables tato nastavení měnit a v congif souborech jsme nikde to současné nastavení latin1/latin1_swedish_ci nenašli.

Takže jsem poslal SQL příkaz ALTER TABLE na konkrétní tabulku s tím, že to změním takhle. Ani to však nešlo, nicméně nám to aspoň ukázalo, v kterém db.opt souboru je nastavení konrétní tabulky. Takže jsme to nastavili přímo v tom db.opt.

No a nefungovalo to pořád. Zjistil jsem, že tímto se změna dotkne jen nově založených tabulek, ale ne již existujících. Takže opět SQL napřímo ALTER TABLE na jednotlivé sloupce tabulky a sláva, už to fungovalo.

Ovšem jen do doby než jsem v jednom sloupci změnil typ proměnné, tím se to zase vrátilo na default a musel jsem na ten sloupec znovu napřímo SQL.

No a dnes se konečně podařilo odhalit, kde se to nastavuje pro celý MySQL. Takže jsem zase o něco chytřejší ;-)
o 13.08.2010, 07:17 | Daryl (A) | Upraveno: 2010-08-13 07:27:42
Pokud pouzijes set names u každého spojeni a bude mu odpovídat kódování kazde stránky, tak na nastavení mysql serveru nezáleží.

Správným nastavením serveru se pouze zbavis nutnosti užití onoho "set names"
o 13.08.2010, 09:55 | Šestikule
set names jsem samo nastavený měl a všechny stránky jsou v cp1250, ale prostě to jenom s tím nefungovalo. Proto jsem na to koukal jak z jara, protože jsem se s tím ještě nesetkal.
o 13.08.2010, 10:14 | Mr.Scully
Já bych taky řekl, že Daryl má pravdu. Když dáš set names XXX a pak tam nahrneš data, tak je úplně fuk, jak je nastavený server... pak při výběru dáš zase set names XXX a dostaneš data ve stejné podobě, jako jsi je vkládal.
o 13.08.2010, 10:33 | Šestikule
no, ale tady to prostě takhle nešlo, nevím proč, našel jsem podobný problém i v několika php diskuzních forech a nikdo to nedokázal vysvětlit. Každopádně aspoň vím do budoucna
o 14.08.2010, 23:16 | Daryl (A)
Sestikule: jediny vysvetleni je, ze v jednom z kroku nebyla ta cestina nastavena spravne.

Na serveru se nastavuje jen collation (pro porovnavani) a kodovani pro komunikaci. Ani jedno z toho nema vlyv na to, v jakem formatu vypadnou data nebo tam vlezou.

Na 100% ty data byla vlozena, nebo prectena se spatnym nastavenim kodovani nebo set names v ramci stranky.
o  Zpět  o  Nahoru
o
 

Vložit nový příspěvek do fóra


  Pro vložení příspěvku musíte být přihlášen/a.
Stránka vygenerována za 0.3322 sekund.