Linux机器上R-MySQL中的字符编码

Linux机器上R-MySQL中的字符编码,sql,r,ubuntu,encoding,rmysql,Sql,R,Ubuntu,Encoding,Rmysql,我正在尝试获取数据,其中包括一些带有umlaut字符的德语单词。按照下面的结构,windows机器中一切正常: Sys.setlocale('LC_ALL','C') library(RMySQL) conn <- dbConnect(MySQL(), user = "user", dbname = "database", host = "host", password = "pass") sql.query <- paste0("so

我正在尝试获取数据,其中包括一些带有umlaut字符的德语单词。按照下面的结构,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)
为了在Linux Ubuntu中获得相同的结果,我应该做哪些更改? 查询将正常运行,但结果是:

names[1230]
[1] "Str\374bbel"
我已经检查了解决方案,但是当我将
'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]) <- "UTF-8"

names[1230]
[1] "Str<fc>bbel"

编码(名称[1230])不确定此解决方案是否对您有帮助,但您可以尝试以下方法:

con <- dbConnect(MySQL(), user = "user", dbname = "database", 
                    host = "host", password = "pass", encoding = "ISO-8859-1")
con而不是:

Sys.setlocale('LC_ALL','C')

您必须使用:

Sys.setlocale('LC_ALL','en_US.UTF-8')

在sql查询中:

library(RMySQL)
  conn <- dbConnect(MySQL(), user = "user", dbname = "database", 
                    host = "host", password = "pass")
sql.query <- paste0("some query")

dbSendQuery(conn,'set character set "utf8"')
df <- dbSendQuery(conn, sql.query)
  names <- fetch(df, -1)
  dbDisconnect(conn)
库(RMySQL)
康涅狄格州
con <- dbConnect(MySQL(), user = "user", dbname = "database", 
                    host = "host", password = "pass", encoding = "ISO-8859-1")
library(RMySQL)
  conn <- dbConnect(MySQL(), user = "user", dbname = "database", 
                    host = "host", password = "pass")
sql.query <- paste0("some query")

dbSendQuery(conn,'set character set "utf8"')
df <- dbSendQuery(conn, sql.query)
  names <- fetch(df, -1)
  dbDisconnect(conn)