/ / आर कंसोल में चीनी (और अन्य गैर-ASCII) चरित्र को प्रदर्शित और इनपुट कैसे करें? - आर

आर कंसोल में चीनी (और अन्य गैर-ASCII) चरित्र को प्रदर्शित और इनपुट कैसे करें? - आर

मेरा सिस्टम: win7 परम 64 अंग्रेजी संस्करण + आर-3.1 (64)।
मेरा सत्र इन्फ्लो यहाँ है।

> 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. आर कंसोल में चीनी चरित्र इनपुट नहीं कर सकते हैं
जब मैं आर कंसोल में एक चीनी चरित्र इनपुट करता हूं, तो यह खराब चरित्र में बदल जाता है।

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

2. आर कंसोल पर चीनी चरित्र प्रदर्शित नहीं कर सकते हैं
जब मैं आर कंसोल में डेटा पढ़ता हूं, तो चीनी चरित्र एक खराब चरित्र में बदल जाता है।
आप डेटा डाउनलोड कर सकते हैं, और इसका परीक्षण कर सकते हैं

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

डेटा डाउनलोड करें

यहां छवि विवरण दर्ज करें

यदि आप नहीं जानते कि मेरे वेब से डेटा कैसे प्राप्त करें, तो डेटा डाउनलोड करने के लिए ग्राफ़ देखें।

यहां छवि विवरण दर्ज करें

आर कंसोल में चीनी अक्षरों को सही तरीके से प्रदर्शित करने और इनपुट करने के लिए मैं अपने पीसी को कैसे सेटअप कर सकता हूं? मैंने चीनी भाषा पैक को अद्यतन किया है, और इसे सक्षम किया है, लेकिन समस्या अभी भी बनी हुई है।

उत्तर:

उत्तर № 1 के लिए 4

यह शायद बहुत अच्छी तरह से प्रलेखित नहीं है, लेकिन आप उपयोग करना चाहते हैं setlocale चीनी का उपयोग करने के लिए। और यह विधि कई अन्य भाषाओं पर भी लागू होती है। समाधान आधिकारिक दस्तावेज के रूप में स्पष्ट नहीं है setlocale प्रदर्शन मुद्दों को हल करने के लिए विशेष रूप से इसे एक विधि के रूप में नहीं बताया है।

> 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 记录

यदि आप स्थानीय लोगों के अन्य पहलुओं को बदलने के बिना, प्रदर्शन एन्कोडिंग को बदलना चाहते हैं, तो उपयोग करें LC_CTYPE के बजाय LC_ALL:

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

अब, निश्चित रूप से यह केवल आधिकारिक पर लागू होता है R कंसोल। यदि आप अन्य आईडीई का उपयोग करते हैं, जैसे कि बहुत लोकप्रिय RStudio, आपको चीनी टाइप करने और प्रदर्शित करने में सक्षम होने के लिए ऐसा करने की ज़रूरत नहीं है, भले ही आपके पास चीनी लोकेल लोड न हो।

यदि डेटा अभी भी सही तरीके से प्रदर्शित करने में विफल रहता है, तो हमें फ़ाइल एन्कोडिंग के मुद्दे को भी देखना चाहिए। अगर फाइल है utf-8 एन्कोडेड, टेट data <- read.table("you_file", sep=",", fileEncoding="utf-8-BOM", header=TRUE) या fileEncoding="utf-8" करेंगे, इस पर निर्भर करता है कि वास्तव में कौन सी एन्कोडिंग है।

लेकिन आप से दूर रहना चाह सकते हैं UTF-BOM क्योंकि इसकी अनुशंसा नहीं की जाती है: बीओएम के बिना utf-8 और utf-8 के बीच क्या अंतर है?