MySQL и UTF-8 - PullRequest
       25

MySQL и UTF-8

4 голосов
/ 19 декабря 2009

В MySQL, в чем разница между:

SET NAMES 'utf8'

И

SET CHARACTER SET 'utf8'

Я посмотрел на Наборы символов соединения и сопоставления Страница документации MySQL , но я все еще немного запутался ... Нужно ли вводить обе команды, чтобы сделать MySQL UTF-8 известно? Или достаточно НАЗВАТЬ ИМЕНА ?

Ответы [ 2 ]

3 голосов
/ 19 декабря 2009

НАЗВАНИЯ

SET NAMES указывает, какой набор символов будет использовать клиент для отправки операторов SQL на сервер. Это означает, что SET NAMES 'cp1251' сообщает серверу «будущие входящие сообщения от этого клиента находятся в наборе символов cp1251». Это также указывает набор символов, который сервер должен использовать для отправки результатов клиенту.

SET CHARACTER SET

SET CHARACTER SET аналогично SET NAMES, но устанавливает character_set_connection и collation_connection на character_set_database и collation_database. SET CHARACTER SET x оператор эквивалентен этим трем операторам:

SET character_set_client = x;
SET character_set_results = x;
SET collation_connection = @@collation_database;

Нужно ли вводить обе команды, чтобы MySQL UTF-8 знал? Или достаточно SET NAMES?

SET NAMES достаточно.

0 голосов
/ 19 декабря 2009

SET NAMES имеет кодировку для подключения, а SET CHARACTER SET - кодировку для таблицы. Использование обеих команд очень рекомендуется, чтобы избежать ужасных проблем с чартером ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...