Страницы

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

суббота, 27 октября 2018 г.

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

В процессе создания приложения при помощи пакета 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


Ответ

Почитал тут: 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

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

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