renderDataTable无法正确显示字符

时间:2019-03-29 12:39:28

标签: r shiny

如何获取renderDataTable来正确显示从.csv文件读取的字符(é,ñ)?

呈现的表在两列中均显示问号。

server = function(input, output, session)
  {
       cal <<- read.csv(calendar_name, stringsAsFactors = F, encoding = "UTF-8")
       output$table <- DT::renderDataTable(DT::datatable(cal, rownames = F))
      }

我的csv文件:

test1,test2 é,ñ

1 个答案:

答案 0 :(得分:0)

我怀疑它一定是您的文件,也许您设置了错误的编码?

在excel 1,2,3,4中制作一个表格,在第2行中创建文本字符串,然后使用Unicode UTF-8导出为csv对我来说很好。

使用<<-并不是要走的路。这会将数据分配给应用程序的1级环境(在本例中为全局环境)。取而代之的是,您想在渲染块内部进行局部分配,甚至更好地在react({})对象或reactValues()

这对我来说很好:

library('shiny')
library('DT')

ui <- fluidPage(

  dataTableOutput('table1')
)

server <- function(input, output, session) {

   DataX <- reactive({ setwd('D:/')
     mydata <- read.csv('Dummyfile.csv', header = F, stringsAsFactors = F, encoding = "UTF-8") 
                      mydata})

  output$table1 <- DT::renderDataTable(DT::datatable(DataX(), rownames = F))
}


shinyApp(ui = ui, server = server) 

enter image description here