tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Problém s diakritikou

před 10 lety

a.m
Člen | 10

Zdravím,

mám MySQL databázi, která má kódování nastavené na CP1250. Přistupuju k ní přes dibi. Jako součást parametrů pro připojení k databázi je i parametr „charset“, který opět nastavuji na „cp1250“. Když pak v databázovém spojení cokoli ukládám do databáze, z textů se mi kompletně odstraní diakritika. Když text s diakritikou uložím do tabulky přes phpMyAdmin, dibi mi češtinu správně zobrazí, ale jakmile dám v mojí aplikaci, která používá dibi, zeditovat tento záznam, diakritika opět zmizí (úplně se odstraní písmenka, která obsahují diakritiku).

Dělám někde něco špatně? Díky za každou radu.

Adam

před 10 lety

David Grudl
Nette Core | 6806

Kódování databáze (nebo jednotlivých tabulek či sloupců) v tom víceméně nehraje roli. Důležité je, v jakém kódování se s databází komunikuje – a to musí být cp1250.

před 10 lety

a.m
Člen | 10

Tak beru zpět, dibi je v tom úplně nevinně. Celá aplikace je postavená na nette a diakritika se ztratí už někde tam. Jdu hledat a příp. napíšu do nette fóra.

Díky.

před 10 lety

David Grudl
Nette Core | 6806

Ty stránky běží pod UTF-8 nebo cp1250? Pokud to druhé, je potřeba do cp1250 přepnout formuláře atd. Nicméně stejně budou nadále interně komunikovat v UTF-8, takže spojení s databází by mělo být také UTF8. Obecně bych doporučil dělat vše v UTF-8 a nevznikne žádný problém.

před 10 lety

a.m
Člen | 10

Ty stránky byly původně v cp1250. Jelikož se ale ukázalo, že naučit je správně pracovat bude daleko složitější než je převést do UTF8, převedli jsme celé stránky do UTF8. A vše už bez problémů funguje. :)