Zadejte hledaný výraz...

Zjištění kódování, případně změna

Martin
verified
rating uzivatele
(62 hodnocení)
16. 10. 2012 11:49:16
Všechny zdravím.
Prosím o pomoc. Mám jeden starší projekt, v kterém potřebuji změnit kódování v databázi. Tabulky mají nastavené porovnávání na UTF-8, ale při připojování přes PHP jsem dřív nepoužíval SET NAMES UTF8 apod. Stránky byly v UTF8, ale při uložení do databáze si to mysql nějak převedlo. Když jsem to tahal zpátky, tak se to převedlo zpátky a zobrazovalo se to v pořádku. Takže jsem to nějak neřešil. Teď to chci sladit, protože to zlobí u řazení a vyhledávání. Projel jsem desítky stránek a asi 2 hodiny zkoušel, ale nějak se mi to nedaří.
Mám udělaný dump tabulky. Potřebuji ho nějak převést do UTF-8. Většina diskuzí co jsem četl byla pro linux. Sice mám VPS pod lunuxem, ale vůbec se v něm nevyznám. Takže tam nechci zkoušet instalovat např. ulitilu "recode" a které se dost často píše, abych něco nepodělal. Chci to tedy zkusit přes konzoli a iconv. Jenže nevím, v jakém to je kódování.
Zkusil jsem to DB vložit testovací řetězec "ěščřžýáíé ĚŠČŘŽÝÁÍÉ" a při pohledu přes PHPAdmina tak je "ěščřžýáíé ĚŠČŘŽÝÁÍÉ".
Jak zjistit v jakém to je kódování. Buďto z toho řetězce nebo z nějakého configu v MySQL? Případně jak to jinak převést, abych měl u v PHPAdminovi správně zobrazenou diakritiku.
Díky moc.
Martin Kejzlar
16. 10. 2012 11:49:16
https://webtrh.cz/diskuse/zjisteni-kodovani-pripadne-zmena#reply820285
Marek
verified
rating uzivatele
(2 hodnocení)
16. 10. 2012 11:57:55
Taky zdravím. Ono nezáleží ani tak na kódování tabulky, ale na kódování sloupců. Nemáš tam třeba něco jako latin1? To tam bývá často defaultně.
Kdysi jsem měl stejný problém a vyyřešil ho jeden php script, zkusím ho vygooglovat ;)
16. 10. 2012 11:57:55
https://webtrh.cz/diskuse/zjisteni-kodovani-pripadne-zmena#reply820284
Václav Dušek
verified
rating uzivatele
(77 hodnocení)
16. 10. 2012 11:59:32
Dump databáze, analyzovat výsledný textový soubor, vyhledej/nahraď, import
Záleží, jak velký "bordel" tam je
16. 10. 2012 11:59:32
https://webtrh.cz/diskuse/zjisteni-kodovani-pripadne-zmena#reply820283
Martin
verified
rating uzivatele
(62 hodnocení)
16. 10. 2012 13:00:49
Tak to bude asi v latin1, protože jsem v mysql našel tohle
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Zkouším se s tím prát přes iconv, ale zatím bez úspěchu.
Nějaký nápad?
---------- Příspěvek doplněn 16.10.2012 v 14:46 ----------
Napsal BumbleBeee;857465
Taky zdravím. Ono nezáleží ani tak na kódování tabulky, ale na kódování sloupců. Nemáš tam třeba něco jako latin1? To tam bývá často defaultně.
Kdysi jsem měl stejný problém a vyyřešil ho jeden php script, zkusím ho vygooglovat ;)
Sloupce jsou taky UTF8_general_ci nebo UTF8_czech_ci.
---------- Příspěvek doplněn 16.10.2012 v 17:51 ----------
Tak jsem se nedobral nějakého autotického řešení, takže bych to udělal ručně. Dumpnu si zalohu a nahradím znaky. Nemáte někdo nějakou tabulku, kde jsou všechny znaky latin1 > UTF8. Nerad bych nějaký znak opomenul a takové množství záznamů nejde kontrolovat ručně.
16. 10. 2012 13:00:49
https://webtrh.cz/diskuse/zjisteni-kodovani-pripadne-zmena#reply820282
Martin
verified
rating uzivatele
(62 hodnocení)
18. 10. 2012 17:19:38
Tak jsem to nakonec vyřešil jednoduše. Možná by to šlo v rovnou v jedný databázi, ale já si radši dělal přes záložní. V PHPku jsem to načetl jako dřív do pole, pak jsem otevřel nové spojení se záložní databází a použíl
a normálně to uložit a je to všechno v DB ve správným kódování.
18. 10. 2012 17:19:38
https://webtrh.cz/diskuse/zjisteni-kodovani-pripadne-zmena#reply820281
Pro odpověď se přihlašte.
Přihlásit