【问题标题】:Executing Rscript from a Batch file - can't process "Umlaute" (ä, ö, ü) properly从批处理文件执行 Rscript - 无法正确处理“元音变音”(ä、ö、ü)
【发布时间】:2021-10-26 13:39:43
【问题描述】:

我有一个 Rscript,当我在 RStudio 中执行它时它执行得很好。如果我通过批处理文件执行相同的 Rscript,它无法处理德语“元音变音”(ä、ö、ü)。

  • RScript 保存为 UTF-8
  • 默认文本编码设置为 UTF-8
  • 我尝试将 CHCP 65001chcp 1252 添加到批处理文件中,结果相同,如下所示:
CHCP 65001
"C:/Users/John Doe/Documents/R/R-4.0.5/bin/Rscript.exe" "uebel.R"
pause

是批处理的问题吗?我能做些什么来避免它?

就我而言,仅删除所有“元音变音”是行不通的。从技术上讲,它会,但实际上并非如此。


非常简单的例子:

RScript,另存为“uebel.R”:

übel <- 1+1

批处理文件,另存为:“uebel.bat”:

"C:/Users/John Doe/Documents/R/R-4.0.5/bin/Rscript.exe" "uebel.R"
pause

在 cmd 中给我错误:

Fehler: unerwartete Eingabe in "ü" (Error: unexpected input in "ü")

Rscript 中的另一个示例以及我在 cmd 中收到的内容:

cat("übelkeit")
übelkeit

【问题讨论】:

  • 您是否尝试在脚本顶部添加 'options(encoding = "UTF-8")' 广告?
  • 是的,没有任何改变。
  • @Dutschke 我有个主意
  • @Dutschke,您正在告诉我们您的问题区域中不存在的事情。请使用edit 选项,以确保包含有关您的 RScript 编码选项的信息、批处理文件以及足够的信息,以便有兴趣重现您的问题的每个人。评论区不是我们应该搜索其他信息以提供帮助的地方,我们需要的一切都应该在您的问题正文中明确。
  • @Dutschke,您的编辑不够好,您告诉我们您使用了chcp 命令,但它在您的提交中不存在。此外,您还评论说您在 RScript 中使用了 options(encoding = "UTF-8"),但它在您的提交中不存在。我们需要能够从与您匹配的批处理文件中执行与您匹配的RScript,并重现您的错误。您提交的内容无法做到这一点,因此请提供该信息以便我们拥有minimal reproducible example,并准确告诉我们您的两个脚本已保存为什么编码,以及您的语言环境代码页是什么。

标签: r batch-file


【解决方案1】:

尝试调用

"C:/Users/John Doe/Documents/R/R-4.0.5/bin/Rscript.exe" --encoding="UTF-8" "uebel.R"

【讨论】:

  • 这是 cmd 给我的:“文件名丢失”
  • @Dutschke 很奇怪,能够在 R-4.0.2 上重现您的问题,但编码行已通过。
  • 哦,对不起,我忘了也粘贴“8”。有用。谢谢!
【解决方案2】:

还有一个解决方案是使用 "ds4psy" 包来打印变音符号:

一个例子:

library(ds4psy)
cat (Umlaut["U"],"belkeit", sep = "")
Übelkeit

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2012-08-14
    • 2020-07-07
    • 2016-01-05
    • 2021-07-22
    • 1970-01-01
    相关资源
    最近更新 更多