Despre codificarea Mysql multe informații este scris, o mulțime de întrebări au fost puse, dar judecând după cantitatea de astfel de probleme și provocări noi încă mulți oameni nu le înțeleg.
Pentru a începe să explice conceptele de bază, în general:
Ce este codificarea caracterelor (setul de caractere):
Să presupunem că avem simbolurile "A", "B", "o", "b". Atribuim fiecare caracter un anumit cod: "A" = 0, "B" = 1, "o" = 2, "b" = 3.
Ie "A" - simbolul 0 - cod.
Astfel, combinația dintre toate caracterele și codurile lor respective se numește codificare.
De exemplu, "A" cp1251 codificare = xC0. și UTF8 = xD090
Că o astfel de comparație (colaționare):
Să presupunem că trebuie să comparăm, simbolurile „A“, „B“.
În cel mai simplu caz, trebuie să luăm codurile lor și să compare ei înșiși codurile. Ie unde: "A" = 0, "B" = 1 și 0 <1 соответственно «А» <«Б». То, что мы сделали и называется сравнением (collation). Этот простейший метод сравнения, по кодам, называется бинарным (binary).
Ce se întâmplă dacă avem nevoie să ia în considerare litere mici și mari, echivalente ( „A“ = „a“). Deci, compara cuvinte compuse din caractere? Pentru a face acest lucru, avem nevoie de a utiliza o metodă diferită de comparație este insensibil la caz (caz-insensibil).
De aceea, trebuie să alegem colaționarea corect MySQL.
În ceea ce privește codificarea în MySQL
MySQL este utilizat pentru:
- stocarea datelor într-un anumit codare (specificat - character_set_database)
- compararea datelor stocate în diferite moduri (colaționare) (collation_database)
- furnizarea de date către utilizator în codificarea dorită l (character_set_results), și nu numai într-un stocat.
- primind din datele de utilizator în codificări diferite, iar conversia de codificare în baza de date. (Character_set_client)
Fiecare dintre acești parametri pot fi stabilite în următoarele etape de lucru cu MySQL:
- pentru toate serverul MySQL
(Parametri: character_set_server, collation_server), - pentru o singură bază de date
(Parametri: character_set_database, collation_database), - pentru conectarea la baza de date curentă
(Parametrii: character_set_client, character_set_connection, character_set_results
Sau anchete:
(Cerere de la crearea tabelului:
Astfel apar erori:
- în cazul în care datele sunt stocate într-o singură, dar a subliniat că alte codificări;
- metoda incorectă de comparație - o eroare de sortare;
- încercați să obțineți datele standard este codificat, și nu cel de care aveți nevoie.
După ce a ocupat acum cu acest articol, nu va mai fi eroare de codificare incorecte sau sortarea în MySQL.
PS: Într-o zi, am avut probleme cu sortarea. La început am crezut că codificării parte, apoi sa dovedit că această eroare este parametrul max_sort_length din cauza (numărul de caractere triate) interogare: SELECT @@ max_sort_length;
Mesaj de navigare
Vă mulțumim pentru articol informativ ... Sunt sigur să-l ia pe nota lui.