Rscript运行UTF-8编码R脚本报invalid multibyte character错误如何解决
Rscript UTF-8中文脚本报错解决办法
该报错的核心原因是Rscript默认解析脚本时未使用UTF-8编码,无法识别脚本中的中文字符,可通过以下三种方案解决:
- 方案1:执行命令时指定编码参数
运行Rscript时额外传入--encoding=UTF-8参数,完整命令如下:
该方案无需修改原有脚本,适合单次临时运行的场景。Rscript --encoding=UTF-8 d:/s.R - 方案2:脚本头部添加编码声明
在s.R脚本的第一行添加编码识别注释,修改后的脚本内容如下:
调整后直接运行# encoding: utf-8 paste("到达第","天",sep="")Rscript d:/s.R即可正常执行,无需每次额外添加参数。 - 方案3:将脚本保存为带BOM的UTF-8格式
如果你在Windows系统下运行,可在代码编辑器的保存选项中,将脚本编码切换为「UTF-8 with BOM」,Rscript会自动识别BOM头使用UTF-8解析脚本,无需调整运行命令或脚本内容。
注意:该方案仅适合纯Windows环境使用,跨平台运行时UTF-8 BOM可能在Linux、macOS环境下产生兼容问题。
内容的提问来源于stack exchange,提问作者Minyi Han
相关产品推荐
相关产品推荐

