Het Mysql database management systeem, vanaf versie 4.1, ondersteunt het werken met coderingen. De belangrijkste problemen met hen doen zich voor bij het verbinden van een database met Php. In dit geval moeten de codering van de inhoud van de basis en de verbinding overeenkomen.
instructies:
Stap 1
Merk op dat een veelvoorkomende oorzaak van problemen met Mysql is dat de standaardcodering voor databases is ingesteld op latin1. De meeste aangesloten clients zijn er ook voor geconfigureerd, u voert gegevens in en bekijkt de resultaten ook. Hoewel deze codering het Cyrillische alfabet correct weergeeft, komen de codes van de symbolentabel daarin niet overeen met de echte Cyrillische tekens. Daarom kan het zoeken en sorteren van gegevens volledig onvoorspelbare resultaten opleveren.
Stap 2
Wijzig de databasecodering in een die correct Cyrillische tekens weergeeft, bijvoorbeeld utf-8 of cp1251. Om dit te doen, converteert u de gegevens van Latin1-codering naar cp1251. Gebruik geen eenvoudige gegevensconversie, omdat de tekencodes onjuist zijn. Daarom moet u hun coderingsbinding verwijderen. Om dit te doen, converteert u de gegevens en het tekentype naar binaire gegevens. Gebruik de query Alter table "Enter table name" t1 change c1 c1 blob.
Stap 3
Voer een query uit om de codering van de Mysql-database te wijzigen, gebruik hiervoor het volgende voorbeeld: Alter table "Voer de tabelnaam in" t1 change c1 c1 text chatacter set "Voer de naam van de gewenste codering in, bijvoorbeeld cp1251". Geen enkele byte aan gegevens wordt fysiek gewijzigd, maar de regel voor het vormen van tekens verandert. Om vervolgens de databasecodering te wijzigen, kunt u een eenvoudige gegevensconversiequery gebruiken.
Stap 4
Houd er rekening mee dat wanneer u tabelcoderingen wijzigt in een veld dat indexen bevat, u deze moet verwijderen en opnieuw moet maken, d.w.z. opnieuw opbouwen in alle databasetabellen. Zorg er bij het overschakelen naar codering voor dat visuele clients unicode ondersteunen. De SQLyog-client geeft bijvoorbeeld onjuist de inhoud weer van tabellen die gegevens opslaan in utf-8-codering.