【发布时间】:2019-11-28 11:44:18
【问题描述】:
我正在尝试获取包含一些带有变音符号的德语单词的数据。遵循以下结构,在 Windows 机器中一切正常:
Sys.setlocale('LC_ALL','C')
library(RMySQL)
conn <- dbConnect(MySQL(), user = "user", dbname = "database",
host = "host", password = "pass")
sql.query <- paste0("some query")
df <- dbSendQuery(conn, sql.query)
names <- fetch(df, -1)
dbDisconnect(conn)
举个例子:
names[1230]
[1] "Strübbel"
为了在 Linux Ubuntu 中获得相同的结果,我应该进行哪些更改? 查询将毫无问题地运行,但结果是:
names[1230]
[1] "Str\374bbel"
我检查了This 解决方案,但是当我将'set character set "utf8"' 放入查询中时,我收到以下错误:
df <- dbSendQuery(conn, sql.query, 'set character set "utf8"')
names <- fetch(df, -1)
Error in .local(conn, statement, ...) :
unused argument ("set character set \"utf8\"")
我应该提到结果的编码是未知的:
Encoding(names[1230])
[1] "unknown"
然后做:
Encoding(names[1230]) <- "UTF-8"
names[1230]
[1] "Str<fc>bbel"
没有解决问题!
【问题讨论】:
标签: sql r ubuntu encoding rmysql