RStudio无法处理含有Unicode字符的文件名。

3
我突然在使用RStudio时遇到了一个问题,当文件/文件夹名称包含Unicode字符时。我已经运行了完全相同的代码数个月,但今天早上它停止工作了。
例如,当我在包含“Ø”的文件路径上运行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"

enter image description here

我不明白为什么这突然发生了,也不知道在RStudio中运行与否是否重要。会话信息略有不同,RStudio多出两个部分:系统代码页:65001工具_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

我有同样的问题。这是由于升级到当前版本的RStudio引起的。你找到了解决方案吗? - mzuba
我通过降级到RStudio 2021.09.1版本解决了这个问题。https://dailies.rstudio.com/version/2021.09.1+372.pro1/ - mzuba
对我来说,升级到Rstudio 2022.02.0+443解决了这个问题。 - Rasmus Larsen
2个回答

0

R和RStudio在Windows上已知存在Unicode问题。引用回复中的一句话,关于这个(类似但不完全相同的)问题

总的来说,目前对于Windows上的R而言,不幸的事实是你应该限制自己使用本地语言环境中可表示的字符。

你的语言环境显示为English_United Kingdom.1252,而你正在尝试使用超出此范围的文件名。更改语言环境以匹配文件名可能会有所帮助。
我没有Windows 10机器进行验证,但互联网上说可以通过“设置>时间和语言>区域和语言”来完成。


2
不行。:( 即使将语言环境设置为丹麦语,也会发生完全相同的事情。而且它在RStudio中与R GUI中的不同之处也没有道理。 - Oliver
@Oliver 可以在 RStudio 的 Github 存储库中打开一个问题。 - Ofek Shilon

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接