Estoy usando Ruby para leer y, a continuación, imprimir un archivo stdout, redirigir la salida a un archivo en Windows PowerShell.

Sin embargo, cuando la inspección de los archivos, me sale esto, para la entrada:

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>

… pero esto de la salida:

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 >

¿Cómo puede suceder esto?


Editar: desde que mi problema no tiene nada que ver con Ruby, me he quitado el Rubí código, y se incluye mi uso de la shell de Windows.

  • ¿Cuál es tu plataforma? Que ÿ_ seguro que se parece a una lista de materiales para UTF-16 de salida.
  • No sé por qué, pero el archivo de salida parece ser codificados como UTF-16.
  • Gracias! Nunca han pensado en el significado de la ÿ_. Me temo que es específico de Windows, y no tiene nada que ver con Ruby. El NUL-bytes me hizo sospechar UTF-16, y el problema es, de hecho, resuelto cuando tengo Ruby salida en UTF-16… y el uso de Ruby archivo de salida en lugar de PowerShell > operador.
InformationsquelleAutor wen | 2012-06-21

1 Comentario

  1. 23

    En PowerShell > es efectivamente el mismo que | Out-File y Archivo por defecto la codificación Unicode. Pruebe esto en lugar de utilizar >:

    ... | Out-File outputfile -encoding ASCII
    • Gracias, esta bastante explica por qué de repente todo se volvió loco cuando me cambié a PowerShell! ^^
    • Hay una manera de hacer esto de manera global en lugar de especificar -encoding para cada Out-File llamar?
    • También me di cuenta de hacia Fuera-de-Archivo-Append es más probable que la causa de este problema de simple Archivo.
    • No > defecto para cualquiera que sea la página de códigos de la consola (como cmd)? No es un alias para | Out-File

Dejar respuesta

Please enter your comment!
Please enter your name here