Zadejte hledaný výraz...

Prevod stranek do uf8, co z MySQL?

Nishkam
verified
rating uzivatele
(3 hodnocení)
27. 3. 2009 09:29:06
Ahoj,
nejak se v tom motam a nemuzu vymotat. :banghead:
Stranky jsou v Iso-8859-2, v MySQL je nastavene u collation na cp1250. Pri pripojeni k databazi se pouzije
set character set to cp1250
Ted ten cely web prevadim do utf-8. Vsechny soubory jsou prekodovane, ale nevim co s databazi :-/ Zkousel jsem nekolik veci a nemuzu prijit na tu jedine spravnou. Dostavam ruzne varianty spatne diakritiky.
Asi by pomohlo napsat script, ktery precte data prekoduje je a zapise zpatky. Pri vetsim mnozstvi tabulek ale je to opruz a hlavne si myslim, ze by to melo jit snad i jednodussi cetsou. Pravdepodobne to bude neco trivialniho, ale nedari se mi na to prijit.
Pokud jste to nekdo delal a mohl mi tady napsat ten kouzelny prikaz, budu Vam moc vdecen.
Diky. Nishkam
27. 3. 2009 09:29:06
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270772
Gejzir
verified
rating uzivatele
27. 3. 2009 09:33:01
Mi se osvědčilo používat kodování MySQL - latin1_swedish_ci
Hned jak vytvořím tabulku, tak sloupce měním na latin1_swedish_ci
A mám klid pří zálohování, změnách kodování, s různými znaky.
Jaké jsou vaše zkušenosti?
27. 3. 2009 09:33:01
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270771
Nishkam
verified
rating uzivatele
(3 hodnocení)
27. 3. 2009 09:36:39
Napsal Gejzír;250584
Mi se osvědčilo používat kodování MySQL - latin1_swedish_ci
Hned jak vytvořím tabulku, tak sloupce měním na latin1_swedish_ci
A mám klid pří zálohování, změnách kodování, s různými znaky.
Jaké jsou vaše zkušenosti?
podle mne to nic neresi. Ten problem by byl v tomto pripade pri zmene kodovani stejny. Navic by byly problemy se tridenim ceskych textu apod.
Kdyz stranka je v iso8859-2 pak dostava data z formulare v iso8859-2, takhle je i uklada do DB. Kdyz zmenim kodovani stranky, kodovani dat pak nesedi, to je ten problem
27. 3. 2009 09:36:39
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270770
Gejzir
verified
rating uzivatele
27. 3. 2009 09:43:31
Já bych to řešil vypsáním databáze a znovu vložením pod novým kodováním, jak jinak.
27. 3. 2009 09:43:31
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270769
Nishkam
verified
rating uzivatele
(3 hodnocení)
27. 3. 2009 09:51:20
a nepomuze nejaky 'convert to' nebo neco takoveho?
27. 3. 2009 09:51:20
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270768
Pota
verified
rating uzivatele
(1 hodnocení)
27. 3. 2009 10:30:29
Zkus:
27. 3. 2009 10:30:29
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270767
Hned po connectu k databázi pošli tenhle dotaz:
27. 3. 2009 10:49:27
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270766
Jakub Bajzath
verified
rating uzivatele
(11 hodnocení)
27. 3. 2009 21:54:27
Všetky databázy mám zásadne už od vytvorenia v utf8_general_ci, a samotné kódovanie php v windows-1250. A db prevádzam zásadne cez
mysql_query("SET NAMES cp1250");
S týmto som zatiaľ problémy nemal.
27. 3. 2009 21:54:27
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270765
kavasnucz
verified
rating uzivatele
29. 3. 2009 18:34:39
Aby to celé fungovalo korektně, je potřeba nastavit kódování UTF-8 úplně všem sloupcům a tabulkám v MySQL databázi. Pokud jich není mnoho, lze to relativně snadno udělat všechno přes phpMyAdmin - naklikat.
29. 3. 2009 18:34:39
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270764
Nishkam
verified
rating uzivatele
(3 hodnocení)
29. 3. 2009 18:58:52
Dekuji za odpovede,
ale z tech poslednich moznosti IMHO nebude fungovat ani 1. Vetsinu z nich jsem zkousel. Je rozdil mezi kodovanim dat v DB a kodovanim stranky. Momentalne data jsou sice ulozene v tabulce s nadpisem cp1250, ale ve skutecnosti jsou v iso8859-2 - jako na strance. Kdyz prevadim stranky z iso do utf, musim i ty data prevest z iso do utf. To, ze na tabulce s daty je napsane cp1250 neni nijak podstatne. Kdyz zmenim tabulku na utf to nebude prekodovani z iso do utf ale nejspise z cp1250 do utf, podle kodovani te tabulky.
Podle mne nebude fungovat nic co neobsahuje oba parametry nutne pro spravne prekodovani - iso a utf
Kaslu na to, myslim ted, ze jsou 2 zpusoby
- 1. dump 2. prekodovat 3. upload zpatky
- script, ktery projde polozku po polozce a prekoduje on-the-fly
Muzu samozrejme pri tom zmenit kodovani tabulek a jednotlivych poli, ale to je detail.
Udelam ten scriptik.
29. 3. 2009 18:58:52
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270763
Napsal nishkam;252508
Podle mne nebude fungovat nic co neobsahuje oba parametry nutne pro spravne prekodovani - iso a utf
Mám db s datama v cp1250. Nejdřív jsem měl web taky v cp1250 a nebylo co řešit, potom jsem jako ty potřeboval převést web do utf8. Po zkoušení všeho možného i nemožného mi nakonec funguje to, co píšu o pár příspěvků nahoře. Nebylo třeba nijak manipulovat s datama v db - jsou stále v cp1250 a web běží v pohodě v utf8. Druhý parametr (původní kódování) při připojování ani nikde jinde neuvádím. Zkus a uvidíš, ale třeba mám zázračnej server :)
29. 3. 2009 19:18:43
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270762
Nishkam
verified
rating uzivatele
(3 hodnocení)
29. 3. 2009 20:21:44
Napsal zahy;252530
Mám db s datama v cp1250. Nejdřív jsem měl web taky v cp1250 a nebylo co řešit, potom jsem jako ty potřeboval převést web do utf8. Po zkoušení všeho možného i nemožného mi nakonec funguje to, co píšu o pár příspěvků nahoře. Nebylo třeba nijak manipulovat s datama v db - jsou stále v cp1250 a web běží v pohodě v utf8. Druhý parametr (původní kódování) při připojování ani nikde jinde neuvádím. Zkus a uvidíš, ale třeba mám zázračnej server :)
bohuzel zadny vliv to nemelo, ale dekuji :)
29. 3. 2009 20:21:44
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270761
Dan
verified
rating uzivatele
(16 hodnocení)
29. 3. 2009 20:31:34
1) prevest vsechny skripty do UTF-8
2) pripojovat se ve skriptech k mysql databazi s kodovanim UTF-8 (ukazka viz. prispevek 27.03.2009, 10:49)
3) prevod stare databaze - sem tam jsem to resil tak, ze jsem vyexportoval celou databazi pres phpmyadmin do soubor.sql, otevrel v PSPAD ve spravnem kodovani, zmenil kodovani na pozadovane, automaticky pripadne prepsal potrebne parametry s kodovanim tabulek, ulozil soubor v pozadovanem kodovani a naimportoval zase pres phpmyadmin do prazdne db (nad kterou predtim pouzit prikaz "ALTER DATABASE `nazev_databaze` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_czech_ci;")
Finito, stoprocentne funkcni.
29. 3. 2009 20:31:34
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270760
Nishkam
verified
rating uzivatele
(3 hodnocení)
29. 3. 2009 21:34:59
Napsal Dan;252599
1) prevest vsechny skripty do UTF-8
2) pripojovat se ve skriptech k mysql databazi s kodovanim UTF-8 (ukazka viz. prispevek 27.03.2009, 10:49)
3) prevod stare databaze - sem tam jsem to resil tak, ze jsem vyexportoval celou databazi pres phpmyadmin do soubor.sql, otevrel v PSPAD ve spravnem kodovani, zmenil kodovani na pozadovane, automaticky pripadne prepsal potrebne parametry s kodovanim tabulek, ulozil soubor v pozadovanem kodovani a naimportoval zase pres phpmyadmin do prazdne db (nad kterou predtim pouzit prikaz "ALTER DATABASE `nazev_databaze` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_czech_ci;")
Finito, stoprocentne funkcni.
prave slo o ten bod 3) kteremu jsem se chtel vyhnout. U vetsich DB to muze byt problem, proto to asi budu resit scriptem, ktery nacte prekoduje a ulozi zpatky tabulku po tabulce, zaznam po zaznamu.
29. 3. 2009 21:34:59
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270759
aichi
verified
rating uzivatele
30. 3. 2009 14:09:00
pokud opravdu mas ISO data v databazi ve sloupcich oznacenych cp1250 pak mas problem a nic jineho nez dump a znovu naliti do DB ti nepomuze, protoze i kdyz pri pripojeni k DB das SET NAMES utf8, tak db ti to bude prekodovavat z cp1250, coz je blbe. Takze si DB dumpni do textaku a otevri treba v PSPad, ten by ti mel rict v jakem kodovani si mysli ze ten text je. Pokud vidis vse spravne cesky, tak zmen pres najit/nahradit to cp1250 na utf8 a utf8_czech_ci a uloz to jako UTFkovy soubor a naimportuj to zpet.
30. 3. 2009 14:09:00
https://webtrh.cz/diskuse/prevod-stranek-do-uf8-co-z-mysql#reply270758
Pro odpověď se přihlašte.
Přihlásit