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
15 октября 2012 12:12

артист (инкогнито)
15 октября 2012, 14:54

Есть замечательная утилита для линукса enconv, которая обладает дополнительными возможностями. Про неё можно почитать тут http://linux.die.net/man/1/enconv

Zverik (инкогнито)
15 октября 2012, 15:27

вот что артист написал ^^^

bolk (bolknote.ru)
15 октября 2012, 15:54, ответ предназначен артисту

Спасибо за совет, но она тут не нужна.

Во-первых, мне нужно ничего детектить, кодировка однозначна написана в файле, точнее этого метода не может быть ничего.
Во-вторых, помимо перекодирования нужно изменить указание кодировки внутри самого файла.

A.I. (sitnik.ru)
15 октября 2012, 15:58

И очень правильно что не принимает ничего кроме UTF-8. Тут проблема не в сервисе, а в программе, которая генерирует не-UTF-8 файл.

bolk (bolknote.ru)
15 октября 2012, 16:23, ответ предназначен A.I. (sitnik.ru):

Очень странно, что не работает ничего, кроме UTF-8. Мне кажется, деньги пользователей, использующих КОИ-8 не отличаются ничем от денег тех, у кого UTF-8.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)