Problém s diakritikou v DB
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Sekyscz
- Člen | 10
Ahoj, chci se zeptat … když uložím do databáze přes formulář například slovo „Jůůůva“ tak při výpisu to hodí tuhle hlášku
Nette\InvalidArgumentException
Component name must be non-empty alphanumeric string, ‚J???va‘ given.
V databázi je místo diakritiky ( ale né každé ) znak otazníku.
Používám Nette databázi. Předpokládám že je chyba v kódování,ale
netuším kde to změnit … nevíte co s tím ? Děkuji
Editoval Sekyscz (25. 11. 2017 16:24)
- Mysteria
- Člen | 797
Nejspíše špatné kódování, použij UTF-8. Například:
CREATE TABLE `log` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`timestamp` datetime NOT NULL,
`type` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`data` varchar(10000) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Zajímají tě části CHARSET=utf8
a
COLLATE=utf8_unicode_ci
. Případně jak v Admineru tak
i PHPMyAdminu by to mělo jít změnit naklikáním někde ve změnách
struktury tabulky.