में मैं आरसेना से चरित्र वेक्टर एन्कोडिंग "अज्ञात" के लिए "UTF-8" आर
पाठ फ़ाइल से एन्कोड किया गया है जो मैं एक मेज पढ़ा (में चरित्र वेक्टर की असंगत एन्कोडिंग के साथ एक समस्या है Notepad++
के माध्यम से) UTF-8
में (मैंने के साथ भी कोशिश की।)।
मैं इस पाठ फ़ाइल से तालिका को पढ़ना चाहता हूं, इसे data.table
पर परिवर्तित करें, key
सेट करें और बाइनरी खोज का उपयोग करें। जब मैं ऐसा करने की कोशिश की, निम्नलिखित छपी:
चेतावनी संदेश:
[.data.table
में (poli.dt, "żżonymi", mult = "पहले"): ज्ञात एन्कोडिंग (latin1 या UTF-8) एक कॉलम कॉलम में पता चला था। data.table वर्तमान में बाइट्स की तुलना करता है, इसलिए मिश्रित एन्कोडिंग का समर्थन नहीं करता है; यानी, लैटिन 1 और यूटीएफ -8 दोनों का उपयोग करके, या यदि कोई अज्ञात एन्कोडिंग गैर-असीसी हैं और उनमें से कुछ को चिह्नित किया गया है और अन्य नहीं हैं। लेकिन अगर लैटिन 1 या यूटीएफ -8 का उपयोग विशेष रूप से किया जाता है, और सभी अज्ञात एन्कोडिंग एएससीआई हैं, तो परिणाम ठीक होना चाहिए। भविष्य में हम आपके लिए जांच करेंगे और अगर सब ठीक है तो हम इस चेतावनी से बचेंगे। मुश्किल हिस्सा एएससीआई-केवल मामलों के प्रदर्शन को प्रभावित किए बिना ऐसा कर रहा है।
और बाइनरी खोज काम नहीं करता है।
मैंने महसूस किया कि मेरी data.table
- key
स्तंभ दोनों के होते हैं: के साथ
> table(Encoding(poli.dt$word))
unknown UTF-8
2061312 2739122
मैं (एक data.table
वस्तु बनाने से पहले) इस स्तंभ में परिवर्तित करने की कोशिश की: "अज्ञात" और "UTF-8" एन्कोडिंग प्रकार के उपयोग:
Encoding(word) <- "UTF-8"
word<- enc2utf8(word)
लेकिन बिना किसी प्रभाव के।
data.table::fread
utils::read.table
base::scan
colbycol::cbc.read.table
मैं भी कुछ अलग आर में एक फ़ाइल को पढ़ने के तरीके (बिल्कुल उपयोगी मानकों की स्थापना, जैसे encoding = "UTF-8"
) की कोशिश की
लेकिन साथ कोई प्रभाव नहीं।
============================================== ====
मेरा आर।संस्करण:
> R.version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 0.3
year 2014
month 03
day 06
svn rev 65126
language R
version.string R version 3.0.3 (2014-03-06)
nickname Warm Puppy
मेरे सत्र जानकारी:
> sessionInfo()
R version 3.0.3 (2014-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=Polish_Poland.1250 LC_CTYPE=Polish_Poland.1250 LC_MONETARY=Polish_Poland.1250
[4] LC_NUMERIC=C LC_TIME=Polish_Poland.1250
base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.9.2 colbycol_0.8 filehash_2.2-2 rJava_0.9-6
loaded via a namespace (and not attached):
[1] plyr_1.8.1 Rcpp_0.11.1 reshape2_1.2.2 stringr_0.6.2 tools_3.0.3
धन्यवाद! =) 'सभी (stri_enc_isutf8 (poli.dt $ शब्द) के परिणाम के अनुसार), ऐसा लगता है कि मेरी फाइल "यूटीएफ -8 में बिल्कुल नहीं है"। हालांकि, मैंने 'data.table' की बजाय 'हैश' तालिका ऑब्जेक्ट का उपयोग करके समस्या का प्रबंधन किया, जो मेरी विशेष समस्या में तेज़ी से दिखाई देता है और इसमें एंडकोडिंग के साथ ऐसी समस्याएं नहीं होती हैं। –
कुछ महत्वपूर्ण बात यह है कि आर 127 से कम सभी बाइट कोडों को ASCII के रूप में आपके लोकेल में सबकुछ 'अज्ञात' के रूप में मानता है। –
'stri_encode (str, from =" ", से =" UTF-8 ") 'मेरे लिए काम नहीं करता है, ऑब्जेक्ट' stri_enc_mark() 'का उपयोग करके' एन्कोडिंग() 'या" ASCII "के साथ" अज्ञात "लौटाता है। , "यूटीएफ -8" नहीं –