1

У меня есть каталог, содержащий файлы, некоторые из них UTF-8, некоторые CP-1251. Я хочу преобразовать те, которые являются CP-1251, в UTF-8, но без повреждения файлов UTF-8.

Я пытался использовать iconv -f cp1251 -t utf8 <...> , он работает для CP-1251, но если файл уже UTF-8, он также конвертируется и становится непонятным.

2 ответа2

1

Вы можете получить список файлов, которые не являются ни UTF-8, ни US-ASCII, используя:

file -0 -i *.txt | awk -F '\0' '$2 !~ /charset=(us-ascii|utf-8)$/ {print $1}'
1

Я нашел способ сделать это с помощью enconv:

enconv -L bulgarian -x utf8 file.txt

Он работает как для файлов UTF-8, так и для файлов CP-1251.

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