??????? ? ?????? 4.0, ?????? MySQL ???????????? ?????????????? ????????? ????????. ??? ?????? ???????????? ? ???, ??? ????? ?????????, ????????????? ? ? ???, ??? ???????? ? ???? ????????????? ? ??????? MySQL.
??????????? ? ?????? ?????????????? ?????? ????????? ??? ????????????? ??????? ????????:
??? ?????? ????????? ????? ??? ????? ?????, ??? ? ????????. ??-??????, ??? ??? ?????????? ???? ???? ?????????? ??? ???????? ?????? ???????. ??-??????, ??? ?????????? ? ?????????? cp1251, ?.?. ? ??? ????????? ?????? 128 ???? ??????? ?????????. ??????????? ?? ???????? ???????? ? ????????????? ??????? ????? (?.?. ?? ?????????? 128-255).
???? ?????? ????????? ???????? ??? ?????? ????? ? ??? ????? ?????. ?????????? ???? ?? ????????? ????? ????????, ?? ? ????????? ????????? ??? ??? ????? ?? ???. ???????? ????????????? ???????? ????????????? ????????, ? ???? ?????? ??????? ?????????? ?????????, ?????????? ??????? ???? ?????? ???? (? ??? ?????, ??????????, ? ????????).
??? ???? ??????? ????????? Unicode (UCS-2). ??????????, ?????????? ?????????? ????? ??????? ?????????? ???????? ? 8 ?????, ??????? ? ???? ????????? ???????????? 2 ????? (?.?. 16 ???) ?? ?????? ??????. ?????? ? ???? ?????????, ??????????, ???????? ?????? ?????, ??? ? ?????? ??????????, ?? ???? ??????????, ???????????? ????? ??????, ????? ????? ??????????? ?? ?????? ?????.
?? ?????? ?? ???????? UCS-2, ????????? ???????? ???-?? ????????. ??-??????, ??? ??? ????????? ?????????? ????? ??????. ????, ???????????? ?????? ????????? ???????, ?? ????? ??? ???? ??????, ?????? ??? ?????? ???????????? 16 ??? ??? ??????????? ????????, ??????? ????????? ? 7 ???. ??-??????, 65536 ???????? ??? ????? ?? ??????? ??? ??????????? ???? ???????????? ???????? ?? ???????.
??? ??????????? ???? ??????????, ???? ??????? ????????? ? ?????????? ?????? ??????? UTF-8. ? ???? ????????? ???????????? 1 ???? ??? ??????????? ?????? 128 ???????? (?.?. ????????, ???????? ? latin1). ???? ?????????? ??????? ??? ??????? ?????, ?? ???????????? ?????? ???? (?.?. ??????? ????? ? ???? ????????? ???????? 2 ?????). ???? ?????????? ??????? ??? ??????? ?????, ?? ???????????? ?????? ???? (? ???? ?????? ????????????? ????????? ? ?????? ????????? ???????) ? ??? ?????.
????? ????????? ??-??????, ????? ?????????? ? ???? ???????????? ?????????? ???????? (?.?. ??? ????????? ??????????? ?????????? ???? ???????????? ???????). ??-??????, ??? ??????????? ????? ???????????? 1 ????, ? ??? ????? ??????? ??? ?????????????? ?????. ????????? ?????? ?? ????? ????? ??? ?????????, ?.?. ?? ?????????? ???????????? 3 ????? ??? ??????????? ????? ???????? (? UCS-2 ??? ?????????? ?????? ???).
????????? ?????????? (??????? ? MySQL, ? ??????? ???? ?????? ?????) ?????????? ?? ?????? ?????????, ?? ? ????????????? ????????. ???? ? ???, ??? ????????? ??????? ????????? ????? ??????? ??????????? (? ?????? ????????? ??????????? ?????? ??? ?????????????????? ????????). ????????, ??? ? ???????? ????? ????? ???? ??????? ??? ?ue?. ? ?????? ???????, ? ???????? ????? ??? ?? ?????? ????? ???? ??????? ??? ?uy?.
? ??????? ????? ?????, ????????, ??????? ??????????? ????? ??? ? ??? (??? ????? ?????? ? ??????????? ??????????). ????? ????? ?????? ???????? ?? ????????? ??????? ? ????????? ????? (??????? ????? ?????? ??? ? ????? ?????????).
????????????? ?????? ?????? ?? ??, ??? ?????????? ???????? ? ????????????? ????????, ??? ?????? ?? ??????? ?????????? ? ?? ????????? ????????. ??????????, ????????????? ??????? ?? ????????? ????????.
? ??????? MySQL ? ?????? ?????? ???? ???? ????????? ? ?????????????. ??? ???????? ???????, ?? ?????? ??????? ????????? ? ?????????????, ? ??????? ????? ????????? ?????? ?????? ???????. ?? ?????? ???? ????????? ??? ????????? ??? ??????? ???? ???????. ????????:
CREATE TABLE enctest (
str1 CHAR(10) CHARSET koi8r,
str2 CHAR(15) COLLATE utf8_general_ci
);? ?????? ??????? ????????? ??????? ? ????? ??????, ???? ?? ??????? ????? ????????? ? ????????? KOI8-R (? ? ?????????????? ??-?????????). ?????? ???? ????? ????? ????????????? utf8_general_ci ? ????????? UTF-8 (????????? ???????????? ?? ?????????????, ?.?. ????????????? ??????? ?? ???).
?????? ????????? ????????? ? ????????????? ?? ?????? ????????, ??????????????, ?????????
SHOW CHARACTER SET;
SHOW COLLATION;
???? ?? ?? ?????? ???? ????????? ????????? ????? ? ???????, ?? ?????? ??? ???? ??????? ??????? ????????? ???????? ??-?????????:
CREATE TABLE enctest2 (
str1 CHAR(10),
str2 CHAR(15)
) DEFAULT CHARSET cp1251;? ?????? ??????, ??? ?????? ????? ??????? ? ????????? CP1251. ?? ?????? ????????? ????????? ????????? ????? ? ? ?????? ???????? ????????? ??-?????????.
?? ????? ?????? ???????? ????????? ???????? ??? ??????????? ???? ???????:
ALTER TABLE enctest2 MODIFY str1 CHAR(10) CHARSET utf8;? ?????? ??????, ? ???? str1 ?????????? ????????? ? ??? ?????? ??????????????. ??????, ??? ???? ?? ????????? ????????? ??-????????? ??? ???????, ?? ?????? ? ??? ?? ??????????????, ?? ?????? ??????? ?? ???????? ?????? ????? ? ???? ???????.
? MySQL ??? ?????? ????????? ???? ?? ??????? ???? ???? ????????????? (? ??????, ?????????). ??? ????, ????? ??????, ??? ??? ??????????, ??? ??? ????? ????? ????????? ????????.
???????? ??????? ????????????? ?????????? ? ???????? ??????????????? ????????? (????????, utf8_). ????? ???? ???????????? ????????????? (???? ?????, ???? ??????? ?????????????, general, ?? ???????????????? ?????) ? ???????? ?? ???????????????? ? ???????? (cs ? case sensitive ? ????????????? ? ????????, ci ? case insensitive ? ?? ?????????????).
???????? ????? ???????? ???????? ????????????? (binary). ???? ?????? ?????????????? ???????? ???????, ?? ????? ???? ?? ???????? ??????? ????????????? ? ??????????????. ????? ?????? ?? ????? ????????????? ???????? SET NAMES (??. ?????). ???????? ????????????? ???????? ?????? ???????????? ??? ???????? ? MySQL 3.23, ??????? ?? ??????????? ????????? ? ??????? ?????????, ??? ??? ??????? ????????? ? ????????? latin1 (?? ?????? ?? ??, ??? ??????? ????? ????????? ??????, ??????, ? KOI8-R).
?????? MySQL ????????????? ???????? ????????? ????? ??? ????????? ?????? ? ??????? ? ??? ??????? ?????? ?? ???????. ??? ???? ?? ?????????? ?????? ?? ????????? ??????????, ?????, ??? character_set_client. ?????? ???? ??????????, ???????? ?? ?????????, ?? ?????? ????????, ???????? ???????
SHOW VARIABLES LIKE ‘char%’;?? ?????? ????????? ??? ?????????? ??-????????, ??? ???????? ?? ????? ??????? ??????? (??? ????????? ? ??????????? ???????):
SET NAMES koi8r;????? ????, ??? ?????? ??????? ????? ???????, ?? ????? ???????, ??? ?? ?????? ?????????? ??? ??? ?????? ? ????????? KOI8-R ? ????? ????????????? ?????????? ????????? ?? ?????? ? ??? ?????????.
??? ?????? ?????, ????? ?????? ??-????????? ???????? ?? ? ??? ?????????, ??????? ?? ???????? (????????, ? KOI8-R, ? ?? ?????? ???????? ?????????? ?? ????? ? CP1251).
MySQL ?????? ?????????? ? ???????????? ? ???, ????? ????????? ?? ???????. ??? ?????? ???????? ?? 1 ????? ?? ?????? ?????? ??? ???????????? ????????? (??? ???? CHAR(10) ???????? ?????? 10 ????, VARCHAR(10) ???????? ?? 1 ?? 11 ???? ? ??????????? ?? ????? ??????, 1 ?????? ???? ???????? ?? ???????? ????? ??????).
??? ????????? UCS-2 ?????? ???????? ?? 2 ????? ?? ?????? ??????. ??? ????????? UTF-8 ?????? ???????? ?????? ?????????? ???? ??? ?????? ???????? (? ???????????? ? ??????????) ? ?????? VARCHAR ? 3 ????? ?? ?????? ?????? ? ?????? CHAR. ????? ???????, ? UTF-8 ?????? CHAR(10) ?????? ???????? 30 ????, ? VARCHAR(10) ? ?? 1 ?? 31 ?????.??? ???? ?? ? ????? ?????? ??? ?????????? UTF-8 ?????? ?? ????? ??????? ??????? ?????? ?? 4 ???? (???????, ??? ?? ??????????? ?????? ???????????).
?c??????: sqlinfo.ru