【问题标题】:Deploying ShinyApp with non-ASCII charcters使用非 ASCII 字符部署 Shiny App
【发布时间】:2020-04-21 19:56:07
【问题描述】:

我有一个想要部署 shinyapps.io 的应用程序,并且正在使用标准过程(描述为 here)来尝试部署它。不幸的是,我不断收到此错误消息。

经过几个小时的调试,我很确定会发生这种情况,因为我尝试读取包含非 ASCII 字符(德语变音符号,例如 Ä)的 .csv 文件。我已经尝试了here 描述的选项(即将所有相关脚本和 .csv 文件保存为 UTF-8 文件,以及在部署应用程序之前将编码选项显式设置为 UTF-8)。

除了简单地更改 CSV 文件中的字符(我真的很想避免)之外,我还能尝试什么?

非常感谢您的帮助!

这里尝试了一个最小的可重现示例。

应用代码在这里:

library(shiny)
library(formattable)
library(readxl)


fp = read.csv("./with1.csv",stringsAsFactors = FALSE,strip.white = TRUE)


ui <- fluidPage(
mainPanel(
 formattableOutput("t1"),
 tags$style("#t1 {color:steelblue;}"),
 tableOutput("t2")

)
)

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


 output$t2 = renderTable({
   fp
 })


  output$t1 = renderFormattable({
    test = as.data.frame(matrix(ncol=4,nrow=1))
    colnames(test) = c("Price","Avy Risk","Tomorrow / This Week","Drive Time")
    test[1,]=c(paste("\U20AC","29"),"2","26cm/ 85cm","3h45m")

    formattable(test,
                align = c("c","c","c","c"),
                list(`Price` = formatter("span", style = ~ style(font.weight = "bold",color="#4187FF",
                                                                 border = "1px solid #4187FF",border.radius="4px",
                                                                 padding="3px")),
                     `Avy Risk` = formatter("span", style = ~ style(font.weight = "bold",color="#FF705A",
                                                                    border = "1px solid #FF705A",border.radius="4px",
                                                                    padding="3px")),
                     `Tomorrow / This Week` = formatter("span", style = ~ style(font.weight = "bold",color="#5cb85c",
                                                                                border = "1px solid #5cb85c",border.radius="4px",
                                                                                padding="3px")),
                     `Drive Time` = formatter("span", style = ~ style(font.weight = "bold",color="#C13BFF",
                                                                      border = "1px solid #C13BFF",border.radius="4px",
                                                                      padding="3px"))

                )
    )
  })

}

shinyApp(ui, server)

fp 数据集(保存在 excel.csv 文件中)如下所示:

[![enter image description here][4]][4]

将 RStudio 正确连接到 RSConnect 后,我​​的部署语句如下所示:

options(encoding = "UTF-8")
rsconnect::deployApp('C:/Users/fiscs14/Desktop/PowderHound/test')

我希望这个示例在某种程度上可以很容易地重现,并让您了解我遇到的问题。

【问题讨论】:

  • 请参阅this 关于如何分享闪亮示例的问题。
  • 我认为该线程充分解决了如何共享普通 Shiny 应用程序的问题。然而不幸的是,我的问题是部署到 shinyapps.io 服务器,这需要一个秘密令牌,共享是不明智的。我将尝试重新创建一个示例,但它需要回答者拥有一个 shinyapps.io 帐户并使用该帐户重新创建它。
  • 啊,好吧,所以你不能重现基本闪亮的行为。
  • 没错,它需要一个shinyapps.io 帐户并且不能仅在基本闪亮中完成。

标签: r deployment utf-8 shiny ascii


【解决方案1】:

好的,如果还有其他人对此感兴趣,我已经找到了解决方案。 我不确定为什么会这样,但这是一个实用的解决方法。

不要使用 read_csv,而是使用 read_excel。有一些 SO 问题以及其他指导表明 csv 中的编码是一场噩梦,因此这似乎适用于非 ASCII 字符。

【讨论】:

    猜你喜欢
    • 2018-04-18
    • 2016-12-09
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多