/ / Verwenden von Sonderzeichen in Rstudio - r, Codierung, rstudio

Verwenden von Sonderzeichen in Rstudio - r, encoding, rududio

Ich arbeite mit einigen Sonderzeichen in Rstudio. Es wandelt sie in einfache Buchstaben um.

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

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

Gibt es eine Möglichkeit, die genauen Originalzeichen einzulesen? Folgende Informationen könnten hilfreich sein: Rstudio Standardcodierung ist 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

Antworten:

1 für die Antwort № 1

Dies ist kein exklusives RStudio-Problem.

Eingabe print("Safarzyńska2013") auf der Konsole von RGui konvertiert sie auch in einfache Buchstaben. Das Ausführen dieses Codes von einem utf-8-codierten Skript in RGui erfolgt zurück [1] "Safarzy?ska2013".

Ich denke nicht, dass es eine gute Idee ist, solche speziellen Zeichen auf der Konsole einzugeben. x <- "SomeString"; Encoding(x) kehrt zurück "unknown" und das ist wahrscheinlich das Problem: R hat keine Ahnung, welche Kodierung Sie auf der Konsole verwenden und hat wahrscheinlich keine Chance, Ihre ursprüngliche Kodierung zu bekommen.

Ich habe "Safarzyńska2013nMāorin" in eine Textdatei geschrieben, die mit utf-8 kodiert ist. Dann funktioniert folgendes:

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

Wenn Sie die Konsole wirklich benutzen wollen, müssen Sie wahrscheinlich die speziellen Zeichen maskieren. Im ?Encoding Wir finden das folgende Beispiel, um ein Wort mit speziellen Zeichen zu erstellen:

x <- "faxE7ile"
Encoding(x)

Eigentlich weiß ich im Moment nicht, wie man diese Codes für Ihre speziellen Zeichen bekommt und ?Encoding hat auch keine Hinweise ...