NUL-байт между каждым другим символом в выводе

Я использую Ruby для чтения, а затем распечатываю файл на стандартный вывод, перенаправляя вывод в файл в 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 >

Как это может случиться?

EditТак как моя проблема не имела никакого отношения к Ruby, я удалил Ruby-код и включил в себя использование оболочки Windows.

 wen21 июн. 2012 г., 23:49
Спасибо! Я никогда не догадывался о значенииÿ_, Я боюсь, что это специфично для Windows и не имеет ничего общего с Ruby. NUL-байты заставили меня подозревать UTF-16, и проблема действительно решается, когда у меня есть выходные данные Ruby в UTF-16 ... и я использую файл Ruby вместо PowerShell.> оператор.
 sarnold21 июн. 2012 г., 23:46
Какая у тебя платформа? Тотÿ_ конечно, выглядит как спецификация для вывода UTF-16.
 Stefan21 июн. 2012 г., 23:46
Не знаю почему, но кажется, что ваш выходной файл имеет кодировку UTF-16.

Ответы на вопрос(1)

Решение Вопроса

В PowerShell> фактически так же, как| Out-File и Out-File по умолчанию использует кодировку Unicode. Попробуйте это вместо использования>:

... | Out-File outputfile -encoding ASCII
 13 февр. 2016 г., 00:42
Также я только что заметил, что Out-File -Append скорее вызовет эту проблему, чем просто Out-File.
 10 дек. 2014 г., 22:32
Есть ли способ сделать это глобально вместо указания-encoding для каждогоOut-File вызов?
 wen22 июн. 2012 г., 03:23
Спасибо, это в значительной степени объясняет, почему все внезапно сошло с ума, когда я переключился на PowerShell! ^^
 12 мая 2018 г., 04:37
Doesn & APOS; т> по умолчанию используется кодовая страница консоли (например,cmd)? Это не псевдоним для| Out-File

Ваш ответ на вопрос