Shiny: مشكلة عرض utf-8 في وظائف العرض

تم إنشاؤها على ١٩ أبريل ٢٠١٧  ·  5تعليقات  ·  مصدر: rstudio/shiny

حفظ جميع الملفات في UTF-8 ترميز يجعل جميع الأحرف UTF-8 في ui.R تظهر بشكل صحيح. لكن لا تزال الأحرف في جميع وظائف العرض لا تُعرض بشكل صحيح.

library(shiny)

server <- function(input, session, output) {
  output$UTF8_text = renderText({
    "中文"
  })
}

ui <- fluidPage(
  p("中文"),
  textOutput("UTF8_text")
)

shinyApp(ui = ui, server = server)

يتم عرض الحرفين الصينيين بالشكل <U+4E2D> و معروض <U+6587> .
من فضلك، انظر بالأسفل.
http://stackoverflow.com/questions/43485436/r-shiny-display-utf-8-characters-in-render-functions

Intermediate Medium Medium Type

التعليق الأكثر فائدة

أنا أعيد فتح هذا لأنه خطأ يجب معالجته.

ال 5 كومينتر

يمكنني إعادة إنتاج هذه المشكلة في Windows عندما أقوم بحفظها في ملف (مثل UTF-8) ثم استدعاء runApp() عليه. أتساءل عما إذا كانت هذه مشكلة في كيفية تحويل jsonlite لها.

المشكلة في renderText : تستدعي capture.output(cat(value)) ، ويبدو أن هذا لا يعمل بشكل صحيح مع هذه الأحرف في Windows.

> cat("中文")
中文
> utils::capture.output(cat("中文"))
[1] "<U+4E2D><U+6587>"

هذا هو الكود المعني:
https://github.com/rstudio/shiny/blob/f8f2acf/R/shinywrappers.R#L318

@ jiayi9 أحد الحلول هو استخدام renderUI ، والذي لا يحتوي على هذه المشكلة:

library(shiny)

server <- function(input, session, output) {
  output$UTF8_text = renderUI({
    "中文"
  })
}

ui <- fluidPage(
  p("中文"),
  uiOutput("UTF8_text")
)

shinyApp(ui = ui, server = server)

نعم ، استخدام renderUI بدلاً من ذلك يحل هذه المشكلة.

أنا أعيد فتح هذا لأنه خطأ يجب معالجته.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات