我已经从 R 连接到 MySQL 数据库并运行“set names utf8”指令。
library(RMySQL)
con<-dbConnect(MySQL(), user='john', password='secret', dbname='awesome', host='myhost')
dbSendQuery(con, "SET NAMES UTF8; ")
当我想从我的查询中返回 UTF8 数据时,这通常会起作用。然而,快速检查表明并非所有变量都已正确设置
dbGetQuery(con, "SHOW VARIABLES LIKE 'character_set_%'")
# Variable_name Value
#1 character_set_client latin1
#2 character_set_connection latin1
#3 character_set_database utf8
#4 character_set_filesystem binary
#5 character_set_results latin1
#6 character_set_server latin1
#7 character_set_system utf8
这里很明显没有设置 character_set_client 变量。明确设置它也无济于事。事实上,它似乎完全忽略了它。
dbSendQuery(con, "SET character_set_client=utf8; ")
dbGetQuery(con, "SHOW VARIABLES LIKE 'character_set_%'")
# Variable_name Value
#1 character_set_client latin1
#2 character_set_connection latin1
#3 character_set_database utf8
#4 character_set_filesystem binary
#5 character_set_results latin1
#6 character_set_server latin1
#7 character_set_system utf8
如何设置它并使连接返回 UTF8 编码文本?该架构使用 utf8 编码和排序规则。