RStudio 无法处理带有 unicode 字符的文件名

RStudio can't deal with file names with unicode characters

当我有 file/folder 个包含 unicode 字符的名称时,我突然开始在 RStudio 中遇到问题。我 运行几个月来一直使用完全相同的代码,但今天早上它停止工作了。

例如,当我运行 list.files() 在包含“Ø”的文件路径上时,它不起作用。但是,我可以将我的工作目录更改为该文件夹,然后 运行 list.files():

# RUNNING IN RSTUDIO
list.files("S:/Spildevand/Lille ØU-sag")
#> character(0)


setwd("S:/Spildevand/Lille ØU-sag")
list.files()
#>  [1] "~$P WW analysis.docx"                                                         
#>  [2] "Anmeldelse til Compliance"                                                    
#>  [3] "Budgetter_2021.03.22.xlsx"
#>  etc

但是如果我从 R GUI 运行 它工作正常:

# RUNNING IN R GUI
list.files("S:/Spildevand/Lille ØU-sag")
#>  [1] "~$P WW analysis.docx"                                                         
#>  [2] "Anmeldelse til Compliance"                                                    
#>  [3] "Budgetter_2021.03.22.xlsx"
#>  etc

类似地,保存包含特殊字符的 RDS 文件在 R GUI 中有效,但在 RStudio 中无效:

x <- 1
saveRDS(x, "æ rstudio.RDS")  # or "æ rgui.RDS"

我不明白为什么这突然开始发生,也不明白我是否 运行 在 RStudio 中这样做很重要。会话信息略有不同,RStudio 有两个额外的位:system code page: 65001tools_4.1.2。不知道它们是什么意思,也不知道它们是否相关。

RStudio: 
--------
R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    
system code page: 65001

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.1.2 tools_4.1.2   



R GUI:
------
R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=English_United Kingdom.1252 
[2] LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.1.2

已知 R 和 RStudio 在 windows 上存在 unicode 问题。引用 reply on this (similar but not identical) issue:

In general, the unfortunate truth right now for R on Windows is that you should restrict yourself to the characters representable in your native locale.

您的语言环境显示为 English_United Kingdom.1252,并且您正在尝试使用文件名之外的字符。更改语言环境以匹配文件名很有可能会有所帮助。
我没有要验证的 windows 10 机器,但互联网上说这是通过“设置”>“时间和语言”>“区域和语言”完成的。

这是 RStudio 当前版本 (2021.09.2+382) 中的错误。我们目前正在努力发布补丁版本,但在此期间,您可以从以下位置下载以前的版本:

https://s3.amazonaws.com/rstudio-ide-build/desktop/windows/RStudio-2021.09.1-372.exe