• R语言
  • 关于shiny中文编码问题

各位论坛大神,最近在用rstudio玩shiny包,被编码问题折磨的死去活来 :cry: 终于决定发个处女贴来向大家求助求助,看看大家在这方面是否有经验指导一下:

在代码运行过程中,出现了:

但同时出现了提示warning:

点击stop停止运行后,再次运行就会报下面的错误:

在geogle的论坛里面我发现过类似的问题:

https://groups.google.com/forum/#!topic/shiny-discuss/lq5hZ81mLCo

但是他的windows是英文版,后来改中文版就成功了。
我的shiny版本是1.1最新的,Rstudio执行sessionInfo()的信息如下:

同一个组几位同学都是UTF-8的问题,运行不成功,求帮助。我们也有到shiny的官网看例子:

http://shiny.rstudio.com/gallery/unicode-characters.html

我自己的代码用到了rcharts封装百度的echarts,echarts相关js的路径目录用
r1$setLib('C://Users//lzkun_000//Documents//R//win-library//3.1//rCharts//libraries//echarts')指定:

server.R:

library(shiny)
require(jsonlite)
require(rCharts)

shinyServer(function(input, output, session){
  
output$plot <- renderChart2({
options(encoding = 'UTF-8') #Sys.setlocale(category="LC_ALL", locale = "chinese") #Sys.getlocale(category="LC_ALL") province<-c("北京","天津","上海","重庆","河北","安徽","新疆","浙江","山西","内蒙古","吉林","福建","广东","西藏","四川","宁夏","香港","澳门") randomv1 <- runif(length(province))*100 randomv2 <- runif(length(province))*1000 randomv3 <- runif(length(province))*10000 China<-data.frame(province,randomv1,randomv2,randomv3,stringsAsFactors=FALSE) df<-data.frame( name=province, value=randomv1 ) df2<-data.frame( name=province, value=randomv2 ) df3<-data.frame( name=province, value=randomv3 ) datatest <- jsonlite::toJSON(df, pretty=TRUE) datastr <- as.character(datatest) datastr <- gsub(pattern="\n", replacement="",datastr) document <- rjson::fromJSON(datastr) datatest2 <- jsonlite::toJSON(df2, pretty=TRUE) datastr2 <- as.character(datatest2) datastr2 <- gsub(pattern="\n", replacement="",datastr2) document2 <- rjson::fromJSON(datastr2) datatest3 <- jsonlite::toJSON(df3, pretty=TRUE) datastr3 <- as.character(datatest3) datastr3 <- gsub(pattern="\n", replacement="",datastr3) document3 <- rjson::fromJSON(datastr3) r1 <- rCharts$new() r1$setLib('C://Users//lzkun_000//Documents//R//win-library//3.1//rCharts//libraries//echarts') r1$set(title=list( text='全国经济数据GDP', subtext='纯属虚构', x='center' )) r1$set(dataRange=list( min=0, max=10000, x='left', y='bottom', text=c('高','低'), calculable=TRUE )) r1$set(series = list(list( name = 'GS', data = document, type = 'map', mapType="china", itemStyle=list(normal=list(label=list(show=TRUE)), emphasis=list(label=list(show=TRUE))) ), list( name = 'GS2', data = document2, type = 'map', mapType="china", itemStyle=list(normal=list(label=list(show=TRUE)), emphasis=list(label=list(show=TRUE))) ), list( name = 'GS3', data = document3, type = 'map', mapType="china", itemStyle=list(normal=list(label=list(show=TRUE)), emphasis=list(label=list(show=TRUE))) ) )) r1$set(tooltip = list( trigger = "item" )) r1$set(legend=list( orient='horizontal', x='left', data=c("iphone3","iphone2","iphone1") )) r1 })

}) ui.R: library(shiny) require(rCharts) shinyUI(bootstrapPage( chartOutput('plot', "C://Users//lzkun_000//Documents//R//win-library//3.1//rCharts//libraries//echarts") ))

等待各位帮助 :cry: :cry:

我之前也我遇到过这样的问题,折磨了四五天,还是不行,不知道是不是shiny自身的问题,跪求大神解答!
:cry: :cry: 跪舔!

    顶一下,希望站长关注
    相关问题我已经转到 https://groups.google.com/forum/#!topic/shiny-discuss/orAhy38vy5I
    希望能得到回复,同样的代码放到不同电台上都出现这个问题,谢谢
    7 年 后

    zhibinzeng

    自身没有问题,只是更新履历表而已都会遇到问题,我晕!@@"
    有人指点迷津吗?

    knit chunk都没有出现问题,不过knit文件中文和符号却出现乱码,从echarts4r官方网下载英中俩都一样。

    尝试将Sys.setlocale("LC_CTYPE", "en_US.UTF-8")设置为Sys.setlocale("LC_CTYPE", "zh_CN.UTF-8"),还是一样...



    参考文章: