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: 65001
和 tools_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
当我有 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: 65001
和 tools_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