我正在学习如何将数据从数据库导入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)
但是数据存在一些编码问题:
左侧列是我从数据库导出的列,右侧列是原始列。有人能告诉我如何用数据库中的重音符号或特殊字符读取数据到R. TIA。
我使用以下代码解决了这个问题:
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)
edf3c1e1f1fa
是íóÁáñú
中CHARACTER SET latin1
的十六进制代码。
可能有些东西期待UTF-8
(CHARACTER SET utf8
或utf8mb4
)并在ed
呱呱叫,因此说Roc<ed>ghf
而不是Rocíghf
。
我对R
的笔记说
Tool -> Global Options -> Code -> Saving and put UTF-8
rs <- dbSendQuery(con, 'set character set "utf8"')
rs <- dbSendQuery(con, 'SET NAMES utf8')
选项(encoding =“UTF-8”)位于我的主脚本的顶部,从中调用包。
但是,这可能恰好倒退,您可能需要使用latin1
而不是utf8
。