Как преобразовать несколько ISO8859-1 в UTF-8

Я пытаюсь преобразовать несколько файлов SQL из ISO8859-1 в UTF-8

Выполняю следующую команду:

iconv -f ISO_8859-1 -t UTF-8 *.sql

What i get - это вывод их содержимого на терминал, который очень длинный, и после окончания вывода они не конвертируются. Они остаются прежними. Я хочу иметь возможность конвертировать и не видеть результат.

6
задан 10 May 2011 в 05:05

20 ответов

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o, но это будет генерировать только один выходной файл и, вероятно, не поможет вам обновлять файлы на месте. Возможно, попробуйте что-то вроде этого:

for file in *.sql; do
    iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"
done

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 25 May 2018 в 21:12
  • 1
    Это какой-то умный сценарий там Джеймс. Большое спасибо. – Luis Alvarado♦ 10 May 2011 в 06:50
  • 2
    Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его. [F1] – SergioAraujo 25 June 2015 в 13:33
  • 3
    @ user3798: звучит как хорошее решение. Почему бы не оставить его в качестве ответа, чтобы люди могли голосовать за него? – James Henstridge 25 June 2015 в 17:15

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o, но это будет генерировать только один выходной файл и, вероятно, не поможет вам обновлять файлы на месте. Возможно, попробуйте что-то вроде этого:

for file in *.sql; do iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file" done

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 25 July 2018 в 21:57

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o, но это будет генерировать только один выходной файл и, вероятно, не поможет вам обновлять файлы на месте. Возможно, попробуйте что-то вроде этого:

for file in *.sql; do iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file" done

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 31 July 2018 в 11:20

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o, но это будет генерировать только один выходной файл и, вероятно, не поможет вам обновлять файлы на месте. Возможно, попробуйте что-то вроде этого:

for file in *.sql; do iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file" done

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 31 July 2018 в 12:20

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o, но это будет генерировать только один выходной файл и, вероятно, не поможет вам обновлять файлы на месте. Возможно, попробуйте что-то вроде этого:

for file in *.sql; do iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file" done

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 2 August 2018 в 03:32

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o, но это будет генерировать только один выходной файл и, вероятно, не поможет вам обновлять файлы на месте. Возможно, попробуйте что-то вроде этого:

for file in *.sql; do iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file" done

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 4 August 2018 в 19:30

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o , но это приведет к генерации только одного выходного файла и, вероятно, не поможет вам обновить файлы на месте. Возможно, попробуйте что-то вроде этого:

  для файла в * .sql;  do iconv -f ISO-8859-1 -t UTF-8 -o "$ file" .utf "$ file" & amp; & amp; & amp; & amp;  mv "$ file" .utf "$ file" done  

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 6 August 2018 в 03:39

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o , но это приведет к генерации только одного выходного файла и, вероятно, не поможет вам обновить файлы на месте. Возможно, попробуйте что-то вроде этого:

  для файла в * .sql;  do iconv -f ISO-8859-1 -t UTF-8 -o "$ file" .utf "$ file" & amp; & amp; & amp; & amp;  mv "$ file" .utf "$ file" done  

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 7 August 2018 в 21:31

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o , но это приведет к генерации только одного выходного файла и, вероятно, не поможет вам обновить файлы на месте. Возможно, попробуйте что-то вроде этого:

  для файла в * .sql;  do iconv -f ISO-8859-1 -t UTF-8 -o "$ file" .utf "$ file" & amp; & amp; & amp; & amp;  mv "$ file" .utf "$ file" done  

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 10 August 2018 в 09:47

iconv по умолчанию отправляет свой вывод в stdout, что объясняет поведение увиденного. Вы можете направлять вывод в файл с помощью опции -o , но это приведет к генерации только одного выходного файла и, вероятно, не поможет вам обновить файлы на месте. Возможно, попробуйте что-то вроде этого:

  для файла в * .sql;  do iconv -f ISO-8859-1 -t UTF-8 -o "$ file" .utf "$ file" & amp; & amp; & amp; & amp;  mv "$ file" .utf "$ file" done  

Это преобразует каждый файл и сохраняет результат во временном файле, переместив его в исходное имя файла, если преобразование было успешным.

7
ответ дан 13 August 2018 в 16:02
  • 1
    Это какой-то умный сценарий там Джеймс. Большое спасибо. – Luis Alvarado♦ 10 May 2011 в 06:50
  • 2
    Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его. rsync -va --iconv = utf8, iso88591 / source / latin1 / / destination / utf8 – SergioAraujo 25 June 2015 в 13:33
  • 3
    @ user3798: звучит как хорошее решение. Почему бы не оставить его в качестве ответа, чтобы люди могли голосовать за него? – James Henstridge 25 June 2015 в 17:15

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

rsync -va --iconv=iso88591,utf8 /source/latin1/ /destination/utf8/
1
ответ дан 25 May 2018 в 21:12

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

rsync -va --iconv=iso88591,utf8 /source/latin1/ /destination/utf8/
1
ответ дан 25 July 2018 в 21:57

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

rsync -va --iconv=iso88591,utf8 /source/latin1/ /destination/utf8/
1
ответ дан 31 July 2018 в 11:20

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

rsync -va --iconv=iso88591,utf8 /source/latin1/ /destination/utf8/
1
ответ дан 31 July 2018 в 12:20

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

rsync -va --iconv=iso88591,utf8 /source/latin1/ /destination/utf8/
1
ответ дан 2 August 2018 в 03:32

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

rsync -va --iconv=iso88591,utf8 /source/latin1/ /destination/utf8/
1
ответ дан 4 August 2018 в 19:30

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

  rsync -va --iconv = iso88591, utf8 / source / latin1 / / destination / utf8 /  
1
ответ дан 6 August 2018 в 03:39

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

  rsync -va --iconv = iso88591, utf8 / source / latin1 / / destination / utf8 /  
1
ответ дан 7 August 2018 в 21:31

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

  rsync -va --iconv = iso88591, utf8 / source / latin1 / / destination / utf8 /  
1
ответ дан 10 August 2018 в 09:47

Также возможно использовать rsync для этой задачи, с одним преимуществом вы будете сохранять резервную копию. Если один из преобразованных файлов уже находится в целевой кодификации, вы испортите его.

  rsync -va --iconv = iso88591, utf8 / source / latin1 / / destination / utf8 /  
1
ответ дан 13 August 2018 в 16:02

Другие вопросы по тегам:

Похожие вопросы: