And_R
And_R

Reputation: 1667

Encoding in Shiny

I'm working with RStudio Version 0.98.507. Short Info about initial working instruments:

R version 3.1.0 (2014-04-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252   
[3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C                   
[5] LC_TIME=German_Germany.1252    

other attached packages:
[1] shinyapps_0.3.53 RJSONIO_1.2-0.2  shiny_0.9.1.9013

loaded via a namespace (and not attached):
 [1] bitops_1.0-6    Cairo_1.5-5     caTools_1.17    digest_0.6.4   
 [5] htmltools_0.2.4 httpuv_1.3.0    Rcpp_0.11.1     RCurl_1.95-4.1 
 [9] shinysky_0.1.2  tools_3.1.0     xtable_1.7-3   

I have a problem by deploying my shiny app on the shiny server. The problem was at some point solved, but after it appears again. Now I cannot fix it any more. My problem are the german letters in helpers.R. Unfortunately, I cannot avoid using them. I'm sourcing my help scrpits helpers.R into server.R like it is shown and taught in Shiny Tutorial. All my R-scripts are carefully saved under UTF-8 format. I cannot use the command

options(encoding="UTF-8")

because after executing it, the command deployApp("app") doesn't work. I set location using

Sys.setlocale(category = "LC_ALL", locale = "German")

It also doesn't work. I cannot understand, why the letters in mainPanel and sidebarLayout are readable, but those from helpers.R not. Can someone help me to solve this paradox?

EXAMPLE

ui.R

library(shiny)

shinyUI(fluidPage(withMathJax(),
                  titlePanel("Währung"),

                  sidebarLayout(position="right",
                                sidebarPanel(
                                        h5("Bedienfenster"),
                                        sliderInput('x', 'x axis',
                                                    value=50, min=3, max=150, step=1,)
                                ),

                                mainPanel(
                                        plotOutput("Plot")
                                )
                  )
))  

server.R

shinyServer(function(input, output){
        output$Plot <- renderPlot({
               x <- rnorm(input$x)
               hist(x, main="", xlab="", ylab="")
               title(main="Schätzgerade", xlab="Währung", ylab="Dichte")
        })
})

After deploying I get following app.

Upvotes: 16

Views: 16248

Answers (3)

Yihui Xie
Yihui Xie

Reputation: 30184

Shiny 0.10.1 has been released on CRAN, so just install.packages('shiny'). Please ignore the answer below.


We have not really started working on the Unicode issue under Windows until recently. Now the problem should be solved, and you can try to install the latest development version from here:

devtools::install_github('rstudio/shiny')

We plan to ship it in shiny 0.10.1 to be released soon, so we will appreciate it if you can help us test it. Basically all you need to do is to make sure ui.R and server.R are encoded in UTF-8. You do not need to set options(encoding = 'UTF-8') or escape ä as \u00E4.

Upvotes: 2

pau.ferrer
pau.ferrer

Reputation: 565

What work for me is to change the encoding of the file (in Rstudio File>Reopen open with encoding) and set encoding:

  • UTF-8 for ui.R
  • WINDOWS-1252 for server.R and global.R

I do not know the reason but it made the trick for me.

Upvotes: 3

James Trimble
James Trimble

Reputation: 1866

As a workaround (which I haven't tested), have you tried using escaped Unicode characters, such as "W\u00E4hrung" instead of "Währung"? You can can find details of how to do this with ?Quotes, and there is a list of Unicode characters at http://en.wikipedia.org/wiki/List_of_Unicode_characters.

Upvotes: 13

Related Questions