/ / Jak wyświetlić i wprowadzić znak chiński (i inne znaki spoza ASCII) w konsoli r? - r

jak wyświetlić i wprowadzić znak chiński (i inne znaki spoza ASCII) w konsoli r? - r

Mój system: win7 ultimate 64 angielska wersja + r-3.1 (64).
Oto moja sessionInfo.

> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252
LC_MONETARY=English_United States.1252 LC_NUMERIC=C
LC_TIME=English_United States.1252

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

1.Nie można wprowadzić chińskiego znaku do r konsoli
Kiedy wprowadzam chiński znak w konsoli r, zmienia się w zniekształcony znak.

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

2. nie może wyświetlać chińskiej postaci na konsoli r
Kiedy czytam dane w konsoli r, chiński bohater zamienia się w zniekształconą postać.
Możesz pobrać dane i przetestować je

read.table("r1.csv",sep=",")

Pobierz dane

wprowadź opis obrazu tutaj

Zobacz wykres, aby pobrać dane, jeśli nie wiesz, jak pobrać dane z mojej sieci.

wprowadź opis obrazu tutaj

Jak mogę skonfigurować komputer tak, aby wyświetlał i wyświetlał chińskie znaki w konsoli? Zaktualizowałem chiński pakiet językowy i włączyłem go, ale problem nadal występuje.

Odpowiedzi:

4 dla odpowiedzi № 1

Prawdopodobnie nie jest to dobrze udokumentowane, ale chcesz go użyć setlocale w celu korzystania z chińskiego. Ta metoda dotyczy również wielu innych języków. Rozwiązanie nie jest oczywiste jako oficjalny dokument setlocale nie wspominałem o tym konkretnie jako o sposobie rozwiązania problemów z wyświetlaniem.

> print("ÊÔÊÔ") #试试, meaning let"s give it a shot in Chinese
[1] "ÊÔÊÔ" #won"t show up correctly
> Sys.getlocale()
[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
> Sys.setlocale(category = "LC_ALL", locale = "chs") #cht for traditional Chinese, etc.
[1] "LC_COLLATE=Chinese_People"s Republic of China.936;LC_CTYPE=Chinese_People"s Republic of China.936;LC_MONETARY=Chinese_People"s Republic of China.936;LC_NUMERIC=C;LC_TIME=Chinese_People"s Republic of China.936"
> print("试试")
[1] "试试"
> read.table("c:/CHS.txt",sep=" ") #Chinese: the 1st record/observation
V1   V2  V3 V4  V5   V6
1 122 第一 122 条 122 记录

Jeśli chcesz zmienić kodowanie ekranu, bez zmiany innych aspektów ustawień narodowych, użyj LC_CTYPE zamiast LC_ALL:

> Sys.setlocale(category = "LC_CTYPE", locale = "chs")
[1] "Chinese_People"s Republic of China.936"
> print("试试")
[1] "试试"

Teraz oczywiście dotyczy to tylko urzędnika R konsola. Jeśli używasz innych IDE, takich jak bardzo popularne RStudio, nie musisz tego robić w ogóle, aby móc pisać i wyświetlać chiński, nawet jeśli nie masz załadowanych chińskich ustawień narodowych.

Jeśli dane nadal nie pokazują się poprawnie, powinniśmy również zbadać kwestię kodowania plików. Jeśli plik jest utf-8 zakodowane, tither data <- read.table("you_file", sep=",", fileEncoding="utf-8-BOM", header=TRUE) lub fileEncoding="utf-8" zrobi, zależy od tego, jakie kodowanie naprawdę ma.

Ale możesz chcieć trzymać się z daleka UTF-BOM ponieważ nie jest to zalecane: Czym różnią się utf-8 i utf-8 bez BOM?