NUL-byte zwischen jedem anderen Charakter im Ausgang
Ich bin mit Ruby zu Lesen und dann drucken einer Datei auf stdout umleiten der Ausgabe in eine Datei, die in Windows PowerShell.
Allerdings, wenn ich die Akten einzusehen, bekomme ich diese für die Eingabe:
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>
... aber diese für die Ausgabe:
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 >
Wie kann das passieren?
Bearbeiten: da mein problem hatte nichts zu tun mit Ruby habe ich entfernt, die Ruby-code, und meine Verwendung der Windows-shell.
- Was ist deine Plattform? Dass
ÿ_
sicher, sieht aus wie ein BOM für UTF-16-Ausgabe. - Weiß nicht warum, aber Ihre Ausgabe-Datei zu sein scheint UTF-16 codiert.
- Danke! Ich hätte nie erraten die Bedeutung der
ÿ_
. Ich fürchte, es ist Windows-spezifisch, und hat nichts zu tun mit Ruby. Die NUL-bytes ließ mich vermuten, UTF-16, und das problem ist ja gelöst, wenn ich Ruby Ausgabe in UTF-16... und die Verwendung von Ruby-Datei-out anstelle von PowerShell>
Betreiber.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der PowerShell
>
ist genauso effektiv wie die| Out-File
- und Out-Datei wird standardmäßig auf Unicode-Codierung. Versuchen Sie, diese anstelle der Verwendung>
:-encoding
für jedenOut-File
nennen?>
Standard um unabhängig von der codepage der Konsole ist (wiecmd
)? Es ist nicht ein alias für| Out-File