Если он у вас есть, вы сможете использовать iconv (инструмент командной строки, а не функция C).Примерно так:
$ for a in $(find . -name '*.cpp') ; do iconv -f utf-8 -t ascii -c "$a" > "$a.ascii" ; done
Опция -c
в iconv
вызывает сброс символов, которые он не может преобразовать.Затем вы проверяете результат и снова просматриваете их, переименовывая файлы «.ascii» в простые имена файлов, перезаписывая входные файлы Unicode:
$ for a in $(find . -name '*.ascii') ; do mv $a $(basename $a .ascii) ; done
Обратите внимание, что обе эти команды не проверены;проверьте, добавив echo
после do
в каждом, чтобы убедиться, что они кажутся нормальными.