将数据从数据库加载到R后正确的文件编码

时间:2019-04-22 20:40:41

标签: mysql r database utf-8

我正在学习如何将数据从数据库导入R。 我使用了以下代码:

library("RMySQL")
library("dbConnect")

con <- dbConnect(RMySQL::MySQL(),dbname = "database_name",host = "xyz.amazonaws.com",user="xxxxxxx",password="ghujkfgd")
dbListTables(con)

df <- "CALL get_transactions('all');"
df <- dbGetQuery(con, df)

但是数据存在一些编码问题:

  

enter code here

左侧列是我要从数据库中导出的列,右侧列是原始列。有人可以告诉我如何从数据库到R. TIA读取带有重音或特殊字符的数据。

2 个答案:

答案 0 :(得分:0)

我已使用以下代码解决了该问题:

library(RMySQL)
library(dbConnect)

con <- dbConnect(RMySQL::MySQL(),dbname = "database_name",host = "xyz.amazonaws.com",user="xxxxxxx",password="ghujkfgd"
dbListTables(con)

df <- "CALL get_transactions('all');"
rs <- dbSendQuery(con, 'set character set "utf8"')
rs <- dbSendQuery(con, df)
data <- fetch(rs, n= -1)


dbDisconnect(con)

答案 1 :(得分:0)

edf3c1e1f1faíóÁáñúCHARACTER SET latin1的十六进制代码。

可能是某人期待UTF-8CHARACTER SET utf8utf8mb4)并惊恐于ed,因此说Roc<ed>ghf而不是Rocíghf。 / p>

我在R上的笔记说

Tool -> Global Options -> Code -> Saving and put UTF-8

rs <- dbSendQuery(con, 'set character set "utf8"')
rs <- dbSendQuery(con, 'SET NAMES utf8')

options(encoding =“ UTF-8”)位于调用该程序包的主脚本顶部。

但是,此可能恰好是向后的,您可能需要使用latin1而不是utf8