phpMyAdmin - cp1250...

Jak mnozí zjistili, pokud mají v MySQL data např. v cp1250 (windows-1250), phpMyAdmin jim nyní zobrazuje při různých možných nastaveních a SQL dotazech včetně SET CHARSET SET cp1250, SET NAMES cp1250 atd. (pro zobrazení funguje tak leda SET CHARSET SET latin2, SET NAMES latin2 a tvrdé nastavení kódové stránky windows-1250 v prohlížeči, leč to neřeší ani editaci v phpMyAdmin, ani export, kde místo klasických znaků š, ž atd. jsou stále otazníky). Stalo se při upgradu, kdy předtím vše výše zmíněné fungovalo bez problému.

Řešením za stávající situace je DB dumpnout, překódovat do cp1250, znova nahrát (kódování importovaného souboru zvolit jako cp1250 - nebo jen nahrát z ještě v pořádku uložené zálohy), a v PHP hned po připojení použít (nově přidat) dotaz 'SET CHARSET SET cp1250'.

Při upgradu z MySQL 4.0 na 4.1 a u phpMyAdmin nemá WZ problém samo, viz např. diskuze na banan.cz:
http://www.owebu.cz/777-526-Prekodovana-databaze

Takže patrně bez výše zmíněnýho pomůže jenom správný nastavení, ovšem přímo na serveru (viz např. [25] na oné diskuzi).
do mejch stranek se to nalouduje dobre, ale v phpMyAdmin se to mrvi pri jakekoliv kombinaci nastaveni zobrazovane sady at uz v phpadmin tak v prohlizeci, je to boj, nastesti nemam nikde nic zivotne dulezite :o)
já to udělal podle výše uvedenýho návodu a už vesele upravuju texty přímo v phpMyAdmin nebo exportuju do cp1250..
> Při upgradu z MySQL 4.0 na 4.1 a u phpMyAdmin nemá WZ problém samo

wz ma nejaky problem? akorat s tim, ze mnozi pouzivali jine kodovani nez latin2 i kdyz to bylo vyslovne "zapovezeno" :-)

zkuste pouzit http://www.webzdarma.cz/tmp/mysql-upgrade-src.php
pripadne dotazy sem
Včetně mě :-) Ale bylo to doporučeno hlavně kvůli třídění (což jsem nepoužíval - a samozřejmě pro cp1250 jsem měl a mám důvod, jinak bych ho nepoužíval že), ostatně hned 1. věta v nápovědě dále tomu dávala za pravdu:

Nápověda byla:
*
Jak získat data z SQL správně setřízena (a ve spravném kódování)?
SQL server ukládá data přesně v té podobně, v jaké je obdržel od klienta. Pokud byste chtěli uložená data při výpisu řadit, máte dvě možnosti:
Používat pouze kódování normy ISO-8859-2. Server při řazení používá toto kódování.
Používat kódování Windows-1250, ale při každém spojení k SQL serveru zadat příkaz SET CHARACTER SET cp1250_latin2 . Server pak přijatá resp. odesílaná data překódovává do/z ISO-8859-2. [více informací]
Pozor: je nutné se držet zvoleného kódování po celou dobu existence uložených dat, jinak budou data uložena v nekonzitentní podobě. Tzn., že např. pokud máte stránky ve windows-1250, do sql zapisujete z php pomocí zmíněného "triku" s překódováním, je nutné v případné editaci dat z prostředí PHPMyAdmina zvolit kódování iso-8859-2 (a podobně pokud používáte jiné kódování).
*
Ten význam "zapovězeno" tam tedy rozhodně není ;-)

A jak to řešili jinde, mělo by to jít řešit přímo v phpMyAdmin (ostatně je to logický). Leč nějaký patrně pevný nastavení tomu brání...

Nicméně i za stávající situace je řešeních samozřejmě víc, já použil to jedno z nejjednodušších...

Ale určitě děkujeme za skript :-)