yihui
这个名叫jilu.dbf的文件是工控软件自动生成的。
starsnowfire
- 2017年9月30日
- 注册于 2017年9月22日
yihui
在rstudo下,运行
tsyp_batch<-read.dbf("e://jilu.dbf")
这一行代码,Windows里获得的表中,能正常显示中文。centos中运行上述语句,Windows中显示中文的位置,显示的是类似于<ea><bd>的字符。- 已编辑
程序在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> 这个页面里查询,获得的信息太少。
不知道描述的是不是清楚。