在MySQL中,这样做之间有什么区别:
SET NAMES 'utf8'
和:
SET CHARACTER SET 'utf8'
我看过MySQL的“连接字符集和排序规则”文档页面,但我仍然有些困惑…是否需要同时发出两个命令才能使MySQL UTF-8知道?
SET NAMES指示客户端将使用什么字符集将SQL语句发送到服务器。这意味着SET NAMES 'cp1251'告诉服务器“此客户端的未来传入消息位于字符集cp1251中。”它还指定了服务器用于将结果发送回客户端的字符集。
SET NAMES
SET NAMES 'cp1251'
SET CHARACTER SET与相似SETNAMES,但将character_set_connection和设置collation_connection为character_set_database和collation_database。一条SETCHARACTER SET x语句等效于以下三个语句:
SET CHARACTER SET
SETNAMES
character_set_connection
collation_connection
character_set_database
collation_database
SETCHARACTER SET x
SET character_set_client = x; SET character_set_results = x; SET collation_connection = @@collation_database;
是否需要发出两个命令才能使MySQL UTF-8知道?还是SET NAMES够了?
设置名称就足够了。