В базе MySQL таблица закодирована в utf8, но соединение почему-то в latin1.
res <- RMySQL::dbSendQuery(con,"show variables like 'character_set_%'")
dbFetch(res)
Variable_name Value
1 character_set_client latin1
2 character_set_connection latin1
3 character_set_database utf8mb4
4 character_set_filesystem binary
5 character_set_results latin1
6 character_set_server latin1
7 character_set_system utf8
8 character_sets_dir /usr/share/mysql/charsets/
На этой странице объясняется, как установить набор символов соединения на utf8 с помощью RMySQL.
RMySQL::dbGetQuery(con,"show variables like 'character_set_%'")
RMySQL::dbGetQuery(con,"set names utf8")
Но на самом деле я предпочитаю использовать dplyr::tbl
для запросов к базе данных. Поскольку соединение, созданное dplyr::src_mysql
, имеет возможность отправлять только операторы sql, которые создают таблицы. Как dplyr установить настройку подключения для использования кодировки utf8?
iconv()
, но это хак, и я бы предпочел читать векторы символов непосредственно в utf8. Тем более, что база уже в utf8. - person Paul Rougieux   schedule 19.06.2015skip-character-set-client
в /etc/mysql/my.cf. - person Paul Rougieux   schedule 24.06.2015