/ / Używanie znaków specjalnych w Rstudio - r, kodowanie, rstudio

Używanie znaków specjalnych w Rstudio - r, kodowanie, rstudio

Pracuję z kilkoma specjalnymi postaciami w Rstudio. Pokrywa je w zwykłe litery.

print("Safarzyńska2013")
[1] "Safarzynska2013"

x <- "Māori"
x
[1] "Maori"

Czy istnieje sposób na odczytanie dokładnych oryginalnych znaków? Poniższe informacje mogą być pomocne: Domyślne kodowanie Rstudio to utf-8

sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] tools_3.1.1

Odpowiedzi:

1 dla odpowiedzi № 1

To nie jest wyłącznie problem RStudio.

Pisanie na maszynie print("Safarzyńska2013") na konsoli RGui również konwertuje je na zwykłe litery. Uruchomienie tego kodu z zakodowanego w UTF-8 skryptu w RGui powraca [1] "Safarzy?ska2013".

Nie sądzę, że dobrze jest wpisać takie specjalne znaki na konsoli. x <- "SomeString"; Encoding(x) zwraca "unknown" i to jest prawdopodobnie problem: R nie ma pojęcia, jakie kodowanie używasz na konsoli i prawdopodobnie nie ma szansy na uzyskanie oryginalnego kodowania.

Umieściłem "Safarzyńska2013nMororin" w pliku tekstowym zakodowanym za pomocą utf-8. Następnie działa dobrze:

tbl <- read.table("c:/test1.txt", encoding = "utf-8", stringsAsFactors = FALSE)
tbl[1,1]
tbl[2,1]
Encoding(tbl[1,1])  # returns "utf-8"

Jeśli naprawdę chcesz skorzystać z konsoli, prawdopodobnie będziesz musiał maskować specjalne znaki. W ?Encoding znajdujemy następujący przykład, aby utworzyć słowo ze specjalnymi znakami:

x <- "faxE7ile"
Encoding(x)

Właściwie nie wiem w tej chwili jak uzyskać te kody dla twoich specjalnych znaków i ?Encoding nie ma też podpowiedzi ...