Согласно документации MYSQL8:
На несколько вопросов о наборе символов и обработке сопоставления для клиентских соединений можно ответить в терминах системных переменных:
- В каком наборе символов используются операторы, когда они покидают клиента? Сервер принимает системную переменную character_set_client как набор символов, в котором операторы отправляются клиентом.
- В какой набор символов сервер должен переводить операторы после их получения? Чтобы определить это, сервер использует системные переменные character_set_connection и collation_connection: Сервер преобразует операторы, отправленные клиентом, из character_set_client в character_set_connection. Исключение: для строковых литералов, у которых есть интродуктор, такой как _utf8mb4 или _latin2, интродьюсер определяет набор символов. См. Раздел 10.3.8, «Представители наборов символов».
Прочитав цитату, запуталась. Сообщает ли документ нам, что если используется интродуктор, он заменит кодировку character_set_connection?
Или позвольте мне привести конкретный пример c, есть ли разница между выполнением select _gbk '中文';
и выполнением select '中文';
? Как вводящий _gbk
влияет на преобразование набора символов сервера для операторов?
Надеюсь, кто-нибудь поможет мне объяснить значение официальных описаний и этого моего примера, большое спасибо.
Ссылка на ссылку: charset-connection