Страницы

Поиск по вопросам

понедельник, 16 декабря 2019 г.

Поддержка юникода в Shiny

#кодировка #unicode #кириллица #r


В процессе создания приложения при помощи пакета Shiny столкнулся с неполной поддержкой
юникода (если это можно так назвать) для кириллических символов.
Русский текст, содержащий букву "я", вызывает ошибку

unexpected INCOMPLETE-STRING


Если текст не содержит этой буковки, то все ок.  

Файл сохраняю в юникоде, как описано в Unicode characters in Shiny apps.  

Пока что пишу эскейп-код \u044f вместо буквы, но хотелось бы разобраться в причинах
такого поведения и, возможно, решить эту проблему без используемого сейчас костыля.

Пример кода:

# ui.R

shinyUI(fluidPage(
    titlePanel("Название приложения"),

    sidebarLayout(
        sidebarPanel( "sidebar panel"),
        mainPanel("main panel")
    )
))

# server.R

shinyServer(function(input, output) {
})


sessionInfo():

R version 3.2.0 (2015-04-16)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 7 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=Russian_Russia.1251  LC_CTYPE=Russian_Russia.1251   
[3] LC_MONETARY=Russian_Russia.1251 LC_NUMERIC=C                   
[5] LC_TIME=Russian_Russia.1251    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shiny_0.11.1 zoo_1.7-12  

loaded via a namespace (and not attached):
 [1] R6_2.0.1        htmltools_0.2.6 tools_3.2.0     Rcpp_0.11.6     RJSONIO_1.3-0  
 [6] grid_3.2.0      digest_0.6.8    xtable_1.7-4    httpuv_1.3.2    mime_0.3       
[11] lattice_0.20-31

    


Ответы

Ответ 1



Почитал тут: http://anton-pribora.ru/articles/php/locales/ Немного поэкспериментировал. У меня сработало следующее: один раз в текущей сессии выполнил установку хитрой локали: Sys.setlocale("LC_ALL","Russian_Russia.20866") Все, можно запускать Shiny-приложение с буковками "я" R version 3.2.1 (2015-06-18) Platform: i386-w64-mingw32/i386 (32-bit) Running under: Windows 7 (build 7601) Service Pack 1 locale: [1] LC_COLLATE=Russian_Russia.20866 LC_CTYPE=Russian_Russia.20866 [3] LC_MONETARY=Russian_Russia.20866 LC_NUMERIC=C [5] LC_TIME=Russian_Russia.20866

Комментариев нет:

Отправить комментарий