rcmdlocalecyrillicsystem2

How to fix a problem with Cyrillic symbols (cmd system commands)?


In my previous post, I brought up a question about Cyrillic symbols in R. Today I have faced another one. For example, we want to see our running processes:

    test <- system2(command="tasklist",
                   stdout=TRUE,
                   stderr=TRUE, 
                   wait = TRUE)

and what we see...

 [1] ""                                                                            
 [2] "€¬п ®Ўа §                      PID €¬п бҐббЁЁ          ь ᥠ­б        Џ ¬пвм"
 [3] "========================= ======== ================ =========== ============"
 [4] "System Idle Process              0 Services                   0        24 ЉЃ"
 [5] "System                           4 Services                   0       580 ЉЃ"
 ***

"Iconv", which helped in the previous task - couldn't help here.

sys.setlocale - too.

What can solve this problem?


Solution

  • I found a solution.

    #/c - Carries out the command specified by string and then stops.
    command <- function(command, 
               intern = TRUE, 
               wait = FALSE)
    system(paste("cmd.exe /c", command), 
               intern = T, 
               wait = wait)
    
    #changing our charset
    command("chcp 1251")
    [1] "’ҐЄгй п Є®¤®ў п бва ­Ёж : 1251" //say bye-bye to mojibake)
    
    # and voila!
    command("tasklist")
    [1] ""                                                                            
    [2] "Имя образа                     PID Имя сессии          № сеанса       Память"
    [3] "========================= ======== ================ =========== ============"
    [4] "System Idle Process              0 Services                   0        24 КБ"
    [5] "System                           4 Services                   0       580 КБ"
    [6] "smss.exe                       380 Services                   0     1 232 КБ"
    ***