首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用Cronjob保存带有特殊字符(UTF-8编码)的XLSX

在R中使用Cronjob保存带有特殊字符(UTF-8编码)的XLSX
EN

Stack Overflow用户
提问于 2021-08-10 11:00:38
回答 1查看 204关注 0票数 0

使用UTF包,我可以将data.frame写入xlsx文件,同时将特殊字符保留在xlsx文件中,因为数据是以UTF8编码保存的(在writexl上)。当我从R控制台运行我的R脚本时,这是有效的。

但是,当我安排一个cronjob运行完全相同的R脚本时,xlsx文件是使用不同的编码保存的,因此不会显示特殊字符。有没有办法改变cronjob中的编码。

我找不到任何有关如何使用cronR包(https://github.com/bnosac/cronR)或writexl包添加与编码相关的参数的文档,也找不到有关如何使用以下任何行在R脚本中更改编码的文档:

代码语言:javascript
复制
options(encoding = "UTF-8")

或者将字符列的编码更改为UTF-8:

代码语言:javascript
复制
data_table <- data_table %>% mutate_if(is.character,
                                       list(~enc2utf8(.)))

在将数据帧写入xlsx之前

代码语言:javascript
复制
writexl::write_xlsx(data_table, "filename.xlsx")

有人知道如何在运行cronjob时将编码更改为UTF-8,以便在保存的xlsx文件中显示特殊字符吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-11 06:23:38

我遇到了a solution by TDaw,它解决了这个问题:

事实证明,这些设置不能在R脚本中指定,因为Cron会覆盖它们。解决方案是在cron中直接通过终端执行此操作。如果在添加cron作业后使用cronR编辑crontab,这将是最简单的。

在终端中输入crontab -e进入crontab。crontab中的类型将允许您插入或编辑i。在我输入的文件的顶部:

代码语言:javascript
复制
LANGUAGE=gb
LC_CTYPE=en_GB.UTF-8
PYTHONIOENCODING=utf8

这将停止使用POSIX作为其语言的cron。按Esc键和:wq键保存并退出。如果您在Rstudio/CronR中编辑cron作业,它们将位于编辑的上方,并且不会使用这些设置,因此crontab必须相应地进行编辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68725580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档