से यूटीएफ -8 फाइलें लिखें, जबकि आर यूनिकोड वर्णों को आंतरिक रूप से आंतरिक रूप से संभालने लगता है, मैं ऐसे यूटीएफ -8 यूनिकोड वर्णों के साथ आर में डेटा फ्रेम आउटपुट करने में सक्षम नहीं हूं। क्या इसे मजबूर करने का कोई तरीका है?आर
data.frame(c("hīersumian","ǣmettigan"))->test
write.table(test,"test.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8")
उत्पादन पाठ फ़ाइल में लिखा है:
hiersumian <U+01E3>mettigan
मैं एक Windows वातावरण (विंडोज 7) में आर संस्करण 3.0.2 का उपयोग कर रहा हूँ।
संपादित
यह जवाब है कि आर UTF-8 में सही ढंग से फ़ाइल लिख रहा है में सुझाव दिया गया है, और समस्या सॉफ्टवेयर मैं फ़ाइल को देखने के उपयोग कर रहा हूँ के साथ निहित है कि। यहां कुछ कोड है जहां मैं आर में सबकुछ कर रहा हूं। मैं यूटीएफ -8 में एन्कोडेड टेक्स्ट फ़ाइल में पढ़ रहा हूं, और आर इसे सही तरीके से पढ़ता है। फिर आर यूटीएफ -8 में फ़ाइल लिखता है और इसे फिर से पढ़ता है, और अब सही यूनिकोड वर्ण चले गए हैं।
read.table("myinputfile.txt",encoding="UTF-8")->myinputfile
myinputfile[1,1]
write.table(myinputfile,"myoutputfile.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8")
read.table("myoutputfile.txt",encoding="UTF-8")->myoutputfile
myoutputfile[1,1]
कंसोल आउटपुट:
> read.table("myinputfile.txt",encoding="UTF-8")->myinputfile
> myinputfile[1,1]
[1] hīersumian
Levels: hīersumian ǣmettigan
> write.table(myinputfile,"myoutputfile.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8")
> read.table("myoutputfile.txt",encoding="UTF-8")->myoutputfile
> myoutputfile[1,1]
[1] <U+FEFF>hiersumian
Levels: <U+01E3>mettigan <U+FEFF>hiersumian
>
काम करता है (उबंटू 12.04 पर आर-डेवेल) टर्मिनल, vi, या emacs में फ़ाइल को देखते समय। –
@ बेनबॉल्कर क्या इसका मतलब यह है कि यह समस्या आर के विंडोज संस्करण के लिए विशिष्ट है? – Sverre
स्पष्टीकरण के लिए: यह एक विंडोज-विशिष्ट समस्या है। ओएस एक्स पर परिणाम सही रूप से सही है। 'test.txt: यूटीएफ -8 यूनिकोड टेक्स्ट 'के साथ' test test.txt' जवाब '। हेक्सडम्प सही बाइट दिखाता है। हालांकि अच्छी तरह से लिखित सवाल। –