/ / Problem z kodowaniem: jak pozwolić konsoli drukować "ć" zamiast "c"? - r, kodowanie, kodowanie znaków, znak, utf

Problem z kodowaniem: jak pozwolić konsoli drukować "ć" zamiast "c"? - r, kodowanie, kodowanie znaków, znak, utf

Pracuję z danymi ze wszystkich możliwych języków europejskich. R nie rozpoznaje poprawnie znaków specjalnych, np. "ć" zamiast "c".

> "ć"
[1] "c"

Natknąłem się na to różne czasy i znalazłem obejścia (read.csv, i inne funkcje mają opcję encoding), to jednak nie rozwiązuje mojego problemu, jak opisano powyżej. Dalej próbowałem

> a <- "ć"
> Encoding(a)
[1] "unknown"

i ustawienie options dla encoding do "utf-8" bez sukcesu. Czy istnieje sposób, aby powiedzieć R z jakim kodowaniem odczytać z konsoli przed faktycznym przypisaniem tej postaci?

Odpowiedzi:

2 dla odpowiedzi № 1

Jest to spowodowane tym, że postać nie jest dostępna wustawienia regionalne, które ustawiłeś. Możesz zmienić ustawienia regionalne na takie, które mają znak, ale może to wpłynąć na inne znaki, a postać może być interpretowana inaczej, jeśli później zmienisz ustawienia regionalne, więc uwaga, emptor.

Sys.setlocale("LC_CTYPE","Polish")
[1] "Polish_Poland.1250"
"ć"
[1] "ć"

Bardziej niezawodnym sposobem radzenia sobie z tą postacią jest użycie jej reprezentacji w Unicode. Oczywiście, będziesz musiał wstępnie przetworzyć dane, aby je zmienić.

"u0107"
[1] "ć"