You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny中使用Unicode星号符号出现编码转换异常问题求助

解决Shiny UI中Unicode五星显示异常的问题

问题根因很明确:R字符串里的单个反斜杠是转义符,\260会被R当成八进制转义序列解析成度符号°,剩下的5直接作为文本输出,所以才会出现°5重复的情况。要让浏览器正确识别CSS里的Unicode五星序列,得让R把反斜杠原封不动传给浏览器,或者换用其他无需转义的写法,以下是三种可行方案:

方案1:使用双反斜杠转义

在R字符串里,要输出单个反斜杠必须用两个反斜杠\\,这样R会把\\2605解析为字符串\2605传给浏览器,浏览器就能识别成五星:

library(shiny)

ui <- fluidPage(
  tags$div(style = "font-size: 24px; color: gold; content: '\\2605\\2605\\2605\\2605\\2605';")
)

server <- function(input, output) {}

shinyApp(ui, server)

方案2:直接使用五星字符本身

不用转义序列,直接复制粘贴五星符号★到代码里,R不会对它做转义处理,直接传给浏览器:

library(shiny)

ui <- fluidPage(
  tags$div(style = "font-size: 24px; color: gold;", "★★★★★")
)

server <- function(input, output) {}

shinyApp(ui, server)

方案3:使用HTML实体编码

用五星的十进制HTML实体&#9733;或十六进制实体&#x2605;,完全避开反斜杠转义的问题:

library(shiny)

ui <- fluidPage(
  tags$div(style = "font-size: 24px; color: gold;", "&#9733;&#9733;&#9733;&#9733;&#9733;")
)

server <- function(input, output) {}

shinyApp(ui, server)

内容的提问来源于stack exchange,提问作者koolmees

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:48:08