簡體   English   中英

使用非 ASCII 字符部署 ShinyApp

[英]Deploying ShinyApp with non-ASCII charcters

我有一個要部署 shinyapps.io 的應用程序,並且正在使用標准過程( 在此處描述)來嘗試部署它。 不幸的是,我不斷收到此錯誤消息。 在此處輸入圖像描述

經過幾個小時的調試,我很確定會發生這種情況,因為我嘗試讀取包含非 ASCII 字符(德語變音符號,例如 Ä)的.csv 文件。 我已經嘗試了此處描述的選項(即將所有相關腳本和.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')

我希望這個例子有點容易重現,並讓您了解我遇到的問題。

好的,所以如果還有其他人對此感興趣,我已經找到了解決方案。 我不確定為什么會這樣,但這是一個實用的解決方法。

不要使用 read_csv,而是使用 read_excel。 有一些 SO 問題以及其他指導表明 csv 中的編碼是一場噩夢,因此這似乎適用於非 ASCII 字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM