Předem svého příspěvku bych chtěl předeslat, že nejsem vývojář a mám nulové zkušenosti s PHP.
Mám nepříliš složitou aplikaci, která sestává z DB (MySQL, 7 tabulek) a ze dvou frontendů - jeden jednoduchý v PHP, který slouží pro nahlížení na některá data a pro nejjednodušší insert do jedné tabulky. Druhý pak v MS Lightswitch.
K přístupu k datům používám MySQL Workbench, aplikace běží na MariaDB (5.5.29-MariaDB), PHP ve verzi 5.3.3-7+squeeze14 with Suhosin-Patch.
A teď problém:
Něco mi asi úplně dobře nefunguje v kódování. DB tabulky mám v UTF-8 Czech CI, v HTML backendu mám hlavičku
Co nainsertuju přes to PHP, se mi v selectu přes PHP zobrazí v pořádku. V MySQL workbenchi to mám ovšem jakési rozsypané.Kód:<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"><head> <meta http-equiv="Content-type" content="text/html;charset=utf-8" />
Větší problém je to, že jsem do MySQL nalil data z MS SQL a na encoding jsem se tak nějak vykašlal a tom důsledku mám v té Lightswitch aplikaci vše nainsertované přes PHP opět rozsypané, zatímco původní data z MS SQL zase v pořádku.
Takže mám následující dotaz:
* dá se provést konverze kódování v MySQL, pokud to mám tabulce uložené blbě? ideálně selektivně, tj. where id<nnn
Snažil jsem se na to přijít nějak sám, ale nějak se nedaří - asi by to mělo jít pomocí CONVERT(), ale nevim, jak mu předhodit jinou kódovou stránku než tu, kterou má tabulka. Problém je totiž asi v tom, že tabulka je UTF-8, některá data asi Latin2 či CP1250 (??), ale uložená jako UTF8.
Tu lightswitch aplikaci bych asi vůbec neřešil, protože ji chci stejně eliminovat...