¿Cómo puedo hacer cambios en este archivo de codificación?

0

Tengo estos 3 archivos

21/08/2014  07:15 PM               122 Tw2AWK.csv
21/08/2014  07:15 PM               125 Tw2Notepad.csv
21/08/2014  07:15 PM               119 Tw2REPL.csv

C: \ myfiles & gt; archivo Tw2AWK.csv TwREPL.csv Tw2Notepad.csv

Tw2AWK.csv;     UTF-8 Unicode text, with CRLF line terminators
Tw2REPL.csv;     UTF-8 Unicode text
Tw2Notepad.csv; UTF-8 Unicode (with BOM) text, with CRLF line terminators

HEX de estos archivos es el siguiente

C: \ myfiles & gt; xxd -p Tw2REPL.csv

0a222344656c686947616e675261706520776173206120736d616c6c2069
6e636964656e7420746f2023536d616c6c5261706973744a6169746c6579
20646e61696e6469612e636f6d2f696e6469612f7265706f72742d69e280
a6207069632e747769747465722e636f6d2f6762565070776637744f22

C: \ myfiles & gt; xxd -p Tw2AWK.csv

0d0a222344656c686947616e675261706520776173206120736d616c6c20
696e636964656e7420746f2023536d616c6c5261706973744a6169746c65
7920646e61696e6469612e636f6d2f696e6469612f7265706f72742d69e2
80a6207069632e747769747465722e636f6d2f6762565070776637744f22
0d0a

C: \ myfiles & gt; xxd -p Tw2Notepad.csv

efbbbf0d0a222344656c686947616e675261706520776173206120736d61
6c6c20696e636964656e7420746f2023536d616c6c5261706973744a6169
746c657920646e61696e6469612e636f6d2f696e6469612f7265706f7274
2d69e280a6207069632e747769747465722e636f6d2f6762565070776637
744f220d0a

Quiero que Tw2REPL.csv se parezca a Tw2Notepad.csv ¿Cómo puedo hacerlo?

NOTA: Tengo que hacer todo esto a través de la línea de comandos. Puedo usar cualquier exe independiente de terceros sin embargo. Estoy en Windows XP

Por favor ayuda, es muy importante para mí.

SuperUserMan
fuente

Respuestas:

2

Primero, agregue los bytes ef bb bf (UTF-8 codificado U + FEFF) al principio del archivo. Es la marca de orden de bytes, que se inventó para UTF-16 y no tiene mucho sentido para UTF-8, aunque algunos programas se basan en ella.

$ (echo ef bb bf; xxd -p file.csv) | xxd -r -p > file.csv.new

C:\> (echo ef bb bf & xxd -p file.csv) | xxd -r -p > file.csv.new

Luego, convierta los finales de línea de Unix (LF 0a ) al formato de Windows (CR LF 0d 0a ).

    $ unix2dos file.csv
or: $ todos file.csv
or: $ sed "s/$/\r/" file.csv > file.csv.new

Ya que tienes xxdSupongo que también tienes a Vim. Puedes hacer esto en Vim abriendo el archivo, luego usando:

:set bomb ff=dos
:w
grawity
fuente
Lo siento, señor por no aclarar, pero tengo que hacer todo esto a través de la línea de comandos (es decir, comandos por lotes). Puedo usar cualquier ex de terceros como sed, tr, xxd, sin embargo. Gracias (P.s. No soy un usuario (muy) técnico)
SuperUserMan
@SuperUserMan: Ver ediciones.
grawity
Cuelga, me olvidé de decirle, estoy en Windows XP, no Linux :(
SuperUserMan
@SuperUserMan: El primer comando permanece casi igual, solo cambia el ; a & si usas cmd.exe en lugar de sh / bash. Las otras herramientas ( todos o sed ) se puede instalar de la misma manera que ya instaló el file o xxd comandos
grawity
@grawity curioso, noté que xxd -r -p da un resultado diferente a xxd -rp. pastebin.com/raw.php?i=iG5C0Jsw -r -p parece no ser divertido, aunque usaste -rp
barlop