R中的西里尔文编码输出

Gal*_*ich 5 encoding r output

编码对我来说总是很痛苦,而且用俄文文本编写文件也是不可能的。我该怎么做?

 >test = c("??????","????")
 >test
 [1] "\320\277\321\200\320\270\320\262\320\265\321\202" "\320\277\320\276\320\272\320\260"

 >Encoding(test)
 [1] "unknown" "unknown"

 > f = file("test.txt", encoding = "UTF-8")

 > write(t,f)
 Error in cat(list(...), file, sep, fill, labels, append) : 
 argument 1 (type 'closure') cannot be handled by 'cat'

 > Encoding(test) = "UTF-8"
 > test
 [1] "<U+043F><U+0440><U+0438><U+0432><U+0435><U+0442>" "<U+043F><U+043E><U+043A><U+0430>"  

 > write(t,f)
 Error in cat(list(...), file, sep, fill, labels, append) : 
 argument 1 (type 'closure') cannot be handled by 'cat'  
Run Code Online (Sandbox Code Playgroud)

我使用 R-studio 0.97.312,Mac OS 10.7.5,

小智 2

我知道您对编码问题的痛苦:( \n希望这能帮助您:

\n\n
    > Sys.setlocale(,"ru_RU")\n    [1] "ru_RU/ru_RU/ru_RU/C/ru_RU/C"\n    > test = c("\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82","\xd0\xbf\xd0\xbe\xd0\xba\xd0\xb0")\n    > write(test, file="test.txt")\n
Run Code Online (Sandbox Code Playgroud)\n\n

之后您甚至可以使用西里尔字母变量Sys.setlocale(,"ru_RU"):

\n\n
   > \xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82 <- rnorm(100)\n   > min(\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82)\n   [1] -2.54578\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xd0\xa2\xd0\xb0\xd0\xba \xd1\x87\xd1\x82\xd0\xbe \xd1\x83\xd0\xb4\xd0\xb0\xd1\x87\xd0\xb8!:)

\n