在R中处理非英文名称的文件

ant*_*nio 7 r utf-8 internationalization character-encoding cyrillic

当使用R函数来操作Windows中的文件时,例如dir(),那些具有非英语字符的文件(如西里尔文)将显示为"?"序列.

同样,在使用时file.rename(),如果新名称包含非英文字符,则使用不可读的字符重命名该文件,显然映射到不同的编码.

有许多函数处理文件内容的编码,但我们如何处理文件名?

重现问题:
外部R在工作目录中创建文件"привет.txt"; 然后在R:

dir() 
# [1] "??????.txt"      
# ...
Run Code Online (Sandbox Code Playgroud)

请注意设置:

Sys.setlocale(category = "LC_ALL", locale="Russian")
Run Code Online (Sandbox Code Playgroud)

没有帮助.

注意:我正在使用R 3.1.2 for Windows,在Windows 8.1下使用英语和Windows控制台(cmd.exe)我正确地看到了西里尔字母.

小智 4

尝试这个:iconv("\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82.txt","UTF-8","CP1251")

\n\n

在编码之间转换字符向量:
https://stat.ethz.ch/R-manual/R-devel/library/base/html/iconv.html

\n\n

iconv 库:
\n http://www.delorie.com/gnu/docs/recode/recode_30.html

\n