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

问题描述 投票:0回答:2

我正在学习如何将数据从数据库导入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。

mysql r database utf-8
2个回答
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)

0
投票

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

可能有些东西期待UTF-8CHARACTER SET utf8utf8mb4)并在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

© www.soinside.com 2019 - 2024. All rights reserved.