LINUX.ORG.RU

enconv - как сделать чтобы UTF-8 файлы стали с BOM?


0

1

Многие программы Windows (включая Блокнот) добавляют байты 0xEF, 0xBB, 0xBF в начале любого документа, сохраняемого как UTF-8. Это метка порядка байтов Юникода (англ. Byte Order Mark, BOM)

По наличию этой сигнатуры программы могут автоматически определить, является ли файл закодированным в UTF-8.

Если есть папка с файлами, то как рекурсивно добавить BOM всем файлам, у которых ее ещё нет?

Это ты типо хочешь из-под Linux исправить файлы в UTF-кодировке на вендофайлопомофке?

#!/bin/sh
if [ `xxd -l 3 -p readme.txt` != efbbbf ]; then
  //тут ты сам придумаешь, как склеить BOM с исходным файлом "$1"
fi

и этот скрипт bom_add.sh запихнуть в подобие

find ./ -type f -iname «*» -exec sh bom_add.sh {} \;

И напоследок для общего развития http://unicode.org/faq/utf_bom.html#BOM

anonymous
()
Ответ на: комментарий от anonymous

Тьфу ты, скопипастил из тестового примера без аргумента:

#!/bin/sh
if [ `xxd -l 3 -p "$1"` != efbbbf ]; then
  //тут ты сам придумаешь, как склеить BOM с исходным файлом "$1"
fi
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.