2

У меня есть около 700 файлов, которые были результатом программного процесса с субтитрами. Я могу открыть файлы на моем ПК или Mac в графическом интерфейсе, но когда я открываю их на сервере с помощью nano, я получаю следующее:

��0^@0^@;^@0^@0^@;^@0^@0^@;^@0^@0^@ ^@0^@0^@;^@0^@0^@;^@0^@6^@;^@0^@0^@
^@
^@N^@o^@t^@ ^@A^@v^@a^@i^@l^@a^@b^@l^@e^@

Вот результаты нескольких вещей из командной строки, которые я пробовал:

#file infile.txt 
infile.txt: data

# file -bi --mime-encoding  infile.txt 
application/octet-stream; charset=binary

recode ../CR-LF infile.txt
#file -bi --mime-encoding  infile.txt

#iconv -f binary -t uff-8 infile.txt > out.txt
iconv: conversions from `binary' and to `uff-8' are not supported

#recode ../CR-LF infile.txt
#recode UTF8..ISO-8859-15 infile.txt 
# file -bi --mime-encoding  infile.txt 
text/plain; charset=utf-16le

#xxd infile.txt | head -5
0000000: fffe 3000 3000 3b00 3000 3000 3b00 3000  ..0.0.;.0.0.;.0.
0000010: 3000 3b00 3000 3000 2000 3000 3000 3b00  0.;.0.0. .0.0.;.
0000020: 3000 3000 3b00 3000 3600 3b00 3000 3000  0.0.;.0.6.;.0.0.
0000030: 0d00 0d0a 004e 006f 0074 0020 0041 0076  .....N.o.t. .A.v
0000040: 0061 0069 006c 0061 0062 006c 0065 00    .a.i.l.a.b.l.e.

Фактический файл выглядит следующим образом (оказывается, это был не лучший выбор, я случайно выбрал один, в котором ничего не было):

00;00;00;00 00;00;06;00 Not Available

Затем, если я nano файл, я получаю текст внизу, который говорит, что он был преобразован из формата DOS и Mac, но это все еще мусор. Мне нужно иметь возможность перебирать файлы и импортировать данные в базу данных, но, конечно, я не могу этого сделать, если сервер не может прочитать формат.

Я хотел бы найти долгосрочное решение, так как в будущем я буду генерировать много таких, и я бы предпочел не использовать Windows PowerShell или аналогичный, а включить преобразование в свой процесс.

1 ответ1

2

Таким образом, решение для меня в конечном итоге заключалось в использовании перекодирования. Отличной документации не так много, но хитрость заключалась в том, чтобы использовать параметр -f, чтобы заставить его изменить его.

recode -f UTF-7 *.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .