Autor Zpráva
Merllinn
Profil *
Ahoj, chtěl bych poprosit o radu.
Klient má běžící aplikaci PHP, MySQL ve které nemůžu nic měnit a já pro něj tvořím jiný nástroj, který má do této DB ukládat data.
Původní systém je celý v win-1250 (prohlížení i ukládání dat) a není spesifikováno kódování kterým se mají data komunikovat (předpokládám, že výchozí je latin1).
Databáze je v utf8_czech_ci, tabulka i sloupec jsou v latin1_sweedish a data jsou uložena už v nějaké podivné formě (např. Předvánoční je uloženo jako Pøedvánoèní).

Jak jsem psal, do této části šáhnout nemůžu, ale data se na webu zobrazují správně. Resp asi bych i mohl, ale veškerá data jsou už uložená v téhle formě a změna kódování tabulek / sloupců způsobí, že se na webu zobrazují zkomoleně.

Problém nastává, když chci data do aplikace uložit. Moje aplikace je v utf-8 a mám nastavené set names na utf-8, když ale ukládám data, uloží se se špatnou diakritikou (např. Španělsko se přetvoří na Špan?lsko).

Moje otázka tedy zní, jestli je možné nastavit, v jakém kódování chc data do DB ukládat, případně co by mohlo můj problém vyřešit.

Předem díky všem za nápady.
Tomáš "Merllinn" Hubička
Joker
Profil
Merllinn:
Tam bude nejspíš problém v tom, že sloupce mají nastavené jedno kódování (nejspíš latin 1), ale data v nich jsou ve skutečnosti v jiném (windows 1250). A protože se to při čtení „zmrší“ opačným způsobem než se to „zmršilo“ při ukládání, na webu se to zobrazuje správně.
Takže aby to fungovalo, bylo by asi potřeba ukládaná data překódovat do windows-1250 a komunikační kódování nastavit latin 1.
Ale možná lepší řešení by bylo zazálohovat databázi, udělat skript na překódování textů a nastavit správné kódování?
Merllinn
Profil *
Díky za rady, už jsem to přepral.

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: