Systém správy databáz Mysql od verzie 4.1 podporuje prácu s kódovaním. Hlavné problémy s nimi vznikajú pri pripájaní databázy k Php. V takom prípade sa musí kódovanie obsahu základne a spojenia zhodovať.
Inštrukcie
Krok 1
Všimnite si, že častou príčinou problémov s Mysql je to, že predvolené kódovanie databáz je nastavené na latin1. Väčšina pripojených klientov je tiež nakonfigurovaná pre tento server, zadávate údaje a pomocou nich tiež zobrazujete výsledky. Aj keď toto kódovanie správne zobrazuje azbuku, kódy tabuľky symbolov v nej nezodpovedajú skutočným znakom cyriliky. Preto môže vyhľadávanie a triedenie údajov priniesť úplne nepredvídateľné výsledky.
Krok 2
Zmeňte kódovanie databázy na také, ktoré správne zobrazuje znaky v azbuke, napríklad utf-8 alebo cp1251. Za týmto účelom preveďte údaje z kódovania Latin1 na cp1251. Nepoužívajte jednoduchý prevod údajov, pretože kódy znakov sú nesprávne. Preto sa musíte zbaviť ich kódovacej väzby. Za týmto účelom preveďte údaje a typ znaku na binárne údaje. Použite dopyt Zmeniť tabuľku „Zadajte názov tabuľky“t1 zmeniť c1 c1 blob.
Krok 3
Spustite dopyt na zmenu kódovania databázy Mysql, na tento účel použite nasledujúci príklad: Zmeniť tabuľku „Zadať názov tabuľky“t1 zmeniť c1 c1 textový chatacter set „Zadať názov požadovaného kódovania, napríklad cp1251“. Fyzicky sa nezmení ani jeden bajt údajov, ale zmení sa pravidlo tvorby znakov. Následne môžete na zmenu kódovania databázy použiť jednoduchý dotaz na prevod údajov.
Krok 4
Upozorňujeme, že pri zmene kódovania tabuľky v poli, ktoré obsahuje indexy, musíte ich odstrániť a znovu vytvoriť, t. znovu zostaviť vo všetkých databázových tabuľkách. Pri prechode na kódovanie sa uistite, či vizuálni klienti podporujú unicode. Napríklad klient SQLyog nesprávne zobrazuje obsah tabuliek, ktoré ukladajú údaje v kódovaní utf-8.