r - 如何将 dplyr::tbl 连接编码更改为 utf8?

标签 r dplyr rmysql

在 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/

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语句。将连接设置设置为使用 utf8 编码的 dplyr 方法是什么?

最佳答案

我遇到了同样的问题,我解决如下:

foo_db <- src_mysql(host='0.0.0.0',user='dbuser',password='a_password',
                    dbname='FlightTimes',port=3336)
dbGetQuery(foo_db$con,'SET NAMES utf8')

我发现这是可能的,通过str(foo_db)查看foo_db的结构,看到类有一个con属性MySQLConnection,然后应用您的dbGetQuery咒语。

关于r - 如何将 dplyr::tbl 连接编码更改为 utf8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932708/

相关文章:

r - 如何让 rapache/brew 安全地连接到 MySQL 数据库?

R:将输入变量转为字符串 - `deparse(substitute(x))` 不起作用

r - 使用 ggplotly() 时如何保留字幕

r - ggplot2 轴标签中的 SI 前缀

基于时间间隔和键的年份 R 聚合

r dplyr ends_with多个字符串匹配

r - 将单列拆分为四列并计算 R 中的重复模式

java - RMySQL 包无法通过 JRI 接口(interface)加载

r - 仅在指定因素之间连接 geom_line

mysql - 使用 collect 将 R 连接到 MySQL 时连接丢失