GEDCOM → MyHerigate
Для импорта и экспорта генеалогических деревьев используется известный формат «ГЕДКОМ», но сайт «MyHeritage» почему-то не понимает файлы в кодировках, отличных от UTF-8. Для конвертации я сделал небольшой скрипт на Баше, которым делюсь:
#!/bin/bash
# проверим в какой кодировке приходит файл
function DetectEncoding {
awk '/^1 CHAR/ {print $3}' "$1" | tr -d '\r'
}
# конвертируем входной файл в UTF-8, добавляем BOM
function ConvertEncoding {
printf "\xef\xbb\xbf"
iconv -f `DetectEncoding "$1"` -t utf-8 "$1" |
sed 's/^1 CHAR.*$/1 CHAR UTF-8/'
}
ConvertEncoding "$1"
Запускать следует таким образом:
./convert2myheritage somefile.ged > somefile-utf8.ged
Есть замечательная утилита для линукса enconv, которая обладает дополнительными возможностями. Про неё можно почитать тут http://linux.die.net/man/1/enconv
вот что артист написал ^^^
Комментарий для артист:
Спасибо за совет, но она тут не нужна.
Во-первых, мне нужно ничего детектить, кодировка однозначна написана в файле, точнее этого метода не может быть ничего.
Во-вторых, помимо перекодирования нужно изменить указание кодировки внутри самого файла.
И очень правильно что не принимает ничего кроме UTF-8. Тут проблема не в сервисе, а в программе, которая генерирует не-UTF-8 файл.
Комментарий для sitnik.ru:
Очень странно, что не работает ничего, кроме UTF-8. Мне кажется, деньги пользователей, использующих КОИ-8 не отличаются ничем от денег тех, у кого UTF-8.