Я розробник Java і використовую Ubuntu для розробки. Проект був створений в Windows за допомогою Eclipse і використовує кодування Windows-1252 .
Для перетворення на UTF-8 я використав програму перекодування :
find Web -iname \*.java | xargs recode CP1252...UTF-8
Ця команда видає цю помилку:
recode: Web/src/br/cits/projeto/geral/presentation/GravacaoMessageHelper.java failed: Ambiguous output in step `CR-LF..data
Я шукав про це і отримую рішення в Bash і Windows, Перекодуй: Неоднозначний вихід у кроці `data..CR-LF ', і там сказано:
Перетворити закінчення рядків з CR / LF в один LF: Відредагуйте файл за допомогою Vim, дайте команду
:set ff=unix
та збережіть файл. Перекодування зараз має виконуватися без помилок.
Приємно, але у мене багато файлів, з яких слід видалити символ CR / LF, і я не можу відкрити кожен, щоб зробити це. Vi не надає жодної опції командного рядка для операцій Bash.
Чи можна для цього використовувати sed? Як?
recode
видає цю помилку при спробі перекодувати файл зі змішаним кодуванням dos (\r\n
- CRLF) та unix (\n
LF). На жальfromdos
, раніше двійковий файл в даний час є псевдонімом для перекодування, який має цю проблему.