- 已编辑
程序在Windows下,用rstudio运行,读取dbf数据文件中的数据,用ggplot2画图,正常运行,没有问题。
后准备移植到centos中的shiny-server中。
但是在centOS7下,安装shiny-server,在局域网的其他电脑上输入http://<ip地址>:3838/sample-apps运行系统自带的示例程序运行正常,只有移植过来的这个程序,报错如下:
error:输入的多字节字符串1有错。
用rstudio直接运行,也是报同样的错误。
经检查,应该是dbf文件代码的问题。在windows下,读取gbk代码的文件没问题。centos下读取出错。
在发这个帖子之前,在google搜索了很多方法,均不能解决。
甚至尝试用iconv对文件进行代码转换(gbk>utf8),发现转换后完全不能读取,报读取错误。
centos系统中,用locale查看字符集,gbk和UTF-8也都有。
搜索了众多资料,终于找到本网站。
在此,提出疑问,怎么样在不对数据库编码变更的情况下,在centOS的shiny-server上运行?
此部分代码如下:
library(foreign)#导入read.dbf的函数库 read.dbf在此库中
library(ggplot2)#导入ggplot2函数库
server <- function(input, output) {
output$plot <- renderPlot({
#以下代码导入数据库文件并转换时间轴和数据轴格式
tsyp_batch<-read.dbf("e://jilu.dbf")
在 <https://stat.ethz.ch/R-manual/R-devel/library/foreign/html/read.dbf.html> 这个页面里查询,获得的信息太少。
不知道描述的是不是清楚。