Ich verwende Ruby zu lesen und dann eine Datei zu stdout drucken, um die Ausgabe in eine Datei in Windows PowerShell umleiten.NUL-Byte zwischen jedem anderen Zeichen in der Ausgabe
Allerdings, wenn ich die Dateien überprüfen, erhalte 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>
... doch ist 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 mit Ruby zu tun hat nichts, habe ich den Rubin-Code entfernt und enthalten meine Verwendung des Windows-Shell.
Was ist Ihre Plattform? Das ['ÿ_'] (http://en.wikipedia.org/wiki/Byte_order_mark#UTF-16) sieht sicher wie eine Stückliste für die UTF-16-Ausgabe aus. – sarnold
Ich weiß nicht warum, aber Ihre Ausgabedatei scheint UTF-16-kodiert zu sein. – Stefan
Danke! Ich hätte niemals die Bedeutung des 'ÿ_' erraten. Ich fürchte, es ist Windows-spezifisch und hat nichts mit Ruby zu tun. Die NUL-Bytes haben mich dazu gebracht, UTF-16 zu vermuten, und das Problem ist tatsächlich gelöst, wenn ich Ruby-Ausgabe in UTF-16 ... und Rubys Datei-out statt PowerShell-'>' -Operator verwende. – wen