R Shiny下载数据编码问题

时间:2016-01-21 23:11:30

标签: r encoding utf-8 shiny shiny-server

也许这是一个愚蠢的问题,但我真的很困惑。我们在Linux系统上运行Shiny服务器并设置语言= UTF-8以确保它正确显示特殊字符(例如谭盾,いきも,AcatlándePérezFigueroa)。但是,当我尝试下载数据时(我有一个使用write.csv功能的下载按钮),这些特殊字符变得混乱。

当我指定编码时,它适用于Windows和Mac系统,这意味着Windows和Mac用户都可以从Shiny页面下载正确的数据。

它首先允许用户上传数据,然后最终进行操作和下载。以下是简化示例:

#upload data

filedata <- reactive({
infile <- input$file
if (is.null(infile)) {
  # User has not uploaded a file yet
  return(NULL)
}
fread(infile$datapath, encoding = "UTF-8")
}) 

#output data

output$im = downloadHandler(
filename = function(){
  paste("Request ",Sys.time(),".csv",sep="")
},
content = function(file){
  write.csv(filedata(),file,row.names = F,fileEncoding = "latin1")
}
)

我理解为什么Windows用户可以下载正确的数据。但我不知道为什么Mac用户也可以这样做,因为我知道Mac和Linux都使用UTF-8。如果我设置fileEncoding = "latin1",那么当用户使用Mac时它应该会搞乱。

任何想法为什么会发生?

提前致谢。

0 个答案:

没有答案