Большинство средств записи DVD (если не все) просит подзаголовки быть закодированным в utf8, уверенном, что это легко
for file in *.srt; do
◀ iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"
◀ done
Это - то, в чем, но теперь арабские подзаголовки являются совсем не арабскими, не, все они находятся ISO-8859
, они также ISO-8859-6
и некоторые Arabic windows CP1256
(Я не делаю то, что является кодированием каждого файла, это - или это или что, не может проверить их всех один за другим, потребуется время жизни),
Как я могу преобразовать их в utf8 при тихом наличии читаемых подзаголовков, я видел немногих программное обеспечение для окон, утверждая, что они могут сделать это. Что относительно Linux я действительно не забочусь, является ли это программное обеспечение или сценарий удара
Используйте классический unix/linux путь и объедините несколько простых инструментов вместе, например,
#!/bin/sh
ls *.srt | while read file ; do
charset=`file -bi $file | sed 's/.*charset=//'`
echo '###' $file $charset
case "$charset" in
us-ascii) charset="";; # no conversion needed
utf-8) charset="";; # no conversion needed
binary) charset="";; # no charset detected
*) ;;
esac
if [ "$charset" != "" ] ; then
iconv -f "$charset" -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"
fi
done
ДЕЙСТВИТЕЛЬНО тестируют первую правильность автоматического обнаружения без iconv
строка.
я предлагаю использовать case
для ограничения преобразования в несколько явно перечисленных наборов символов.
Альтернативные способы автоматического обнаружения набора символов обеспечиваются в https://superuser.com/questions/301552/how-to-auto-detect-text-file-encoding