Encoding
EncodingНастройка сервера на FreeBSD 14.3 -> Кодировки
Когда необходимо перекодировать все файлы заданного типа в другую кодировку можно сделать это следующим образом.
Перекодирование с созданием резервных копий: find /home/example/public_html -name "*.txt" -type f -exec sh -c 'iconv -f WINDOWS-1251 -t UTF-8 "$1" > "$1.utf8" && mv "$1.utf8" "$1"' _ {} \;
Более сложный вариант: find /home/example/public_html -type f -name '*.txt' -print0 | xargs -0 -I{} sh -c 'f="$1"; if grep -Eqi "charset[[:space:]]*=[[:space:]]*[\"\x27]?windows-1251" -- "$f" || file -b --mime-encoding -- "$f" | grep -qi 1251; then t="$f.tmp"; t2="$f.tmp2"; iconv -f CP1251 -t UTF-8 -- "$f" > "$t" && perl -0777 -pe "s/(charset\\s*=\\s*[\"\\x27]?)(?:[Ww]indows-1251|[Ww]in-1251|[Cc][Pp]1251)([\"\\x27]?)/\\1utf-8\\2/g" -- "$t" > "$t2" && mv -- "$t2" "$f" && rm -f -- "$t"; fi' sh {}
Метки: encoding
Опрос
В каком году был сделан ваш сайт? (голосов: 24)
- до 2015 года - 23 (96%)

- в 2015 - 0 (0%)

- в 2016 - 0 (0%)

- в 2017 - 0 (0%)

- в 2018 - 1 (4%)

- в 2019 - 0 (0%)

