Каждая кодировка в SieFM представляет собой файл размером 256 байт с расширением .enc. Эти файлы хранятся в папке enc вместе с файлом enc.ini. Это текстовый файл, в котором содержатся названия всех кодировок, поддерживаемых программой. Enc.ini - единственный файл, который обязательно должен быть в юникоде в формате UTF-8 с BOM сигнатурой или без нее, или в формате UTF-16 с BOM сигнатурой (в ранних версиях - только в формате UTF-8).

Собственно в файле кодировки находятся 128 символов юникода (2 байта на символ, Big Endian), соответствующих кодам некоторой кодировки с 128 (0x80) по 255 (0xFF). Коды с 0 по 127, составляющие кодировку ASCII, во всех кодировках соответствуют одинаковым символам, поэтому в файле кодировки они отсутствуют. Таким образом, например, если символ 'Б' в кодировке CP1251 имеет код 193 (0xC1), то в файле этой кодировки по адресу (C1 - 80) * 2 = 82 будет находиться двухбайтовое значение 0x0411, то есть код буквы 'Б' в юникоде.

Чтобы добавить в программу новую кодировку можно проделать следующее:

  1. Выяснить коды символов кодировки в юникоде
  2. В любом шестнадцатиричном редакторе создать файл размером 256 байт
  3. Последовательно занести в созданный файл коды символов юникода, соответствующие кодам кодировки с 128 по 255 (с 0x80 по 0xFF)
  4. Добавить полученный файл в архив с программой в папку enc, при этом дописав информацию о новой кодировке в файл enc.ini

Используются технологии uCoz