2012-06-21 20 views
8

में हर दूसरे चरित्र के बीच एनयूएल-बाइट मैं पढ़ने के लिए रूबी का उपयोग कर रहा हूं और फिर फ़ाइल को stdout पर प्रिंट कर रहा हूं, आउटपुट को Windows PowerShell में फ़ाइल में रीडायरेक्ट कर रहा हूं।आउटपुट

हालांकि, जब मैं फ़ाइलों का निरीक्षण किया, मैं इस इनपुट के लिए मिलती है:

PS D:> head -n 1 .\inputfile 
<text id="http://observer.guardian.co.uk/osm/story/0,,1009777,00.html">   <s>    Hooligans  NNS  hooligan 
       ,  ,  ,    unbridled  JJ  unbridled    passion NN  passion 
-  :  -    and  CC  and    no  DT  no    executive  JJ  executiv 
e    boxes NNS  box    .  SENT .    </s> 

... अभी तक इस उत्पादन के लिए:

PS D:> head -n 1 .\outputfile 
ÿ_< t e x t i d = " h t t p :// o b s e r v e r . g u a r d i a n . c o . u k/o s m/s t o r y/0 , , 1 0 0 9 7 7 7 , 0 
0 . h t m l " >     <s>   H o o l i g a n s  N N S h o o l i g a n     ,  , 
,    u n b r i d l e d  J J  u n b r i d l e d    p a s s i o n N N  p a s s i o n 
-  :  -    a n d C C  a n d   n o  D T  n o    e x e c u t i v e  J J 
e x e c u t i v e    b o x e s  N N S b o x   .  S E N T   .    </s > 

यह कैसे हो सकता है?


संपादित: मेरी समस्या रूबी से कोई लेना देना नहीं था के बाद से, मैं रूबी कोड हटा दिया है, और Windows खोल के अपने उपयोग शामिल थे।

+2

आपका प्लेटफ़ॉर्म क्या है? वह ['ÿ_'] (http://en.wikipedia.org/wiki/Byte_order_mark#UTF-16) निश्चित रूप से यूटीएफ -16 आउटपुट के लिए बीओएम की तरह दिखता है। – sarnold

+0

पता नहीं क्यों लेकिन आपकी आउटपुट फ़ाइल यूटीएफ -16 एन्कोडेड प्रतीत होती है। – Stefan

+0

धन्यवाद! मैंने कभी 'ÿ_' के अर्थ का अनुमान नहीं लगाया होगा। मुझे डर है कि यह विंडोज-विशिष्ट है, और रूबी के साथ इसका कोई लेना-देना नहीं है। एनयूएल-बाइट्स ने मुझे यूटीएफ -16 पर संदिग्ध बना दिया, और जब समस्या यूटीएफ -16 में रूबी आउटपुट है तो समस्या हल हो जाती है ... और पावरशेल के '> ऑपरेटर के बजाय रूबी के फाइल-आउट का उपयोग करें। – wen

उत्तर

16

पावरशेल > प्रभावी रूप से | Out-File और आउट-फ़ाइल डिफ़ॉल्ट रूप से यूनिकोड एन्कोडिंग के समान होता है। > का उपयोग करने के बजाय इसे आजमाएं:

... | Out-File outputfile -encoding ASCII 
+0

धन्यवाद, यह बहुत कुछ बताता है कि जब मैं पावरशेल पर स्विच करता था तो अचानक सबकुछ पागल हो गया! ^^ – wen

+2

क्या प्रत्येक 'आउट-फाइल' कॉल के लिए '-कोडिंग' निर्दिष्ट करने के बजाय वैश्विक स्तर पर ऐसा करने का कोई तरीका है? –

+0

इसके अलावा मैंने अभी देखा है कि आउट-फाइल-एपेंड इस समस्या को केवल सादे आउट-फाइल की तुलना में अधिक होने की संभावना है। – Arluin