Professional Documents
Culture Documents
Adrian pytel
Kodowanie znaków
Kodowanie znaków
Serwer MySQL jest przystosowany do obsługi wielu standardów kodowania
znaków. Do użytkownika należy wybór, z jakiego kodowania chce
skorzystać.
• utf8_general_ci (utf8_polish_ci)
• latin2_general_ci
• cp1250_general_ci
• cp852_general_ci
Kodowanie znaków
Serwer będzie wykorzystywał jeden z wymienionych zestawów znaków,
jeśli w pliku konfiguracyjnym my.ini znajdzie się wpis
character-set-server=nazwa_standardu
character-set-server=latin2
Kodowanie znaków
character-set-server=nazwa_standardu
Kodowanie znaków
Kodowanie można zdefiniować podczas uruchamiania serwera z opcją:
--character-set-server=nazwa_standardu
Kodowanie znaków
Kodowanie MySQL UTF-8 wykorzystuje maksymalnie 3 bajty, podczas gdy
do zakodowania pełnego zestawu znaków UTF-8 wymagane są 4 bajty.
Jest to dobre dla wszystkich znaków językowych, ale jeśli potrzebujesz
obsługiwać różnorodne symbole, wymagają one czterobajtowego
kodowania, które nie jest obsługiwane w MySQL UTF-8. Więc jeśli
używasz od MySQL 5.5.3 lub nowszego zalecane jest utf8mb4 zamiast
UTF-8 jako zestawu znaków bazy danych, tabeli, wiersza.
Kodowanie znaków
W nowych projektach bazy danych MySQL zalecane jest używanie
kodowania utf8mb4, które rozwiązuje problemy występujące przy
kodowaniu utf8. W całym projekcie kodowanie znaków ustawiamy na
utf8mb4, zaś kodowanie dla kolejności sortowania ustawiamy na
utf8mb4_unicode_ci (m.in. polskie znaki MySQL, bez rozróżniania wielkości
liter).
Kodowanie znaków
Ustawienie zestawu znaków dla serwera to nie wszystko. Każde połączenie
z serwerem na przypisane odpowiednie reguły kodowania, a związku z
tym dla każdego połączenia te reguły mogą być inne. Serwer musi
wiedzieć jaka strona kodowa została użyta w wysyłanym przez klienta
zapytaniu oraz jakiej strony kodowej ma użyć w odpowiedzi.
Kodowanie znaków
Kwestie te reguluje kilka zmiennych serwera.
Ustawienie można przeprowadzić poprzez wykonanie jednej instrukcji.
ALTER TABLE nazwatabeli MODIFY nazwakolumny varchar(40) CHARACTER SET utf8 COLLATE
utf8_slovak_ci;
Kodowanie znaków
Konwertowanie znaków: