在MySQL数据库中,表格使用utf8编码,但出于某种原因,连接使用latin1。如何将dplyr :: tbl连接编码更改为utf8?
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/
This page explain how to set the connection's character set to utf8 using RMySQL。
RMySQL::dbGetQuery(con,"show variables like 'character_set_%'")
RMySQL::dbGetQuery(con,"set names utf8")
但其实我更喜欢使用dplyr::tbl
查询数据库。由于dplyr::src_mysql
创建的连接只能发送创建表的sql语句。什么是dplyr的方式来设置使用utf8编码的连接设置?
你见过这个吗? http://stackoverflow.com/questions/25934752/utf-8-encoding-with-dplyr-and-sqlite –
@RomanLuštrik我已经看到它谢谢你,我也转换字符列utf8使用特设解决方案' iconv()'但它是一个黑客,我宁愿直接在utf8中读取字符向量。特别是因为数据库已经在utf8中。 –
我感到你的痛苦。编码对于使用非latin1数据的每个人来说都是一个祸害。 –