R에서 MySQL 데이터베이스에 연결하고 "set names utf8"지시문을 실행했습니다.MySQL 연결에서 R의 SET NAMES utf8 지시문을 무시하는 이유는 무엇입니까?
library(RMySQL)
con<-dbConnect(MySQL(), user='john', password='secret', dbname='awesome', host='myhost')
dbSendQuery(con, "SET NAMES UTF8; ")
일반적으로 내 검색어에서 UTF8 데이터를 다시 원할 때 트릭입니다. 그러나 빠른 검사는 모든 변수가해서 character_set_client 변수가 설정되지 않았 음을 분명 여기에 제대로
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
을 설정 한 것을 보여줍니다. 명시 적으로 설정하는 것도 도움이되지 않습니다. 실제로 그것을 완전히 무시한 것처럼 보입니다.
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 인코딩 및 데이터 정렬을 사용 중입니다.
감사합니다. 그러나, 당신이 볼 수 있듯이 나는 초기 연결에서 'SET NAMES utf8'을 발행하고 있습니다. 그러나 도움이되지 않습니다 ... R에서 핸드 셰이크를 비활성화 할 수 있습니까? –
핸드 셰이크를 비활성화하는 것은 서버 옵션입니다 :'skip-character-set-client-handshake' –