Образовательный интерес.
Кодировка - сама по себе особо то и не пишется, вот взбрело Вам в голову изобрести свою кодировку - изобретайте. Например решили будет 8 бит на это. Предположим Вы начали 0- пробел, 1- A, 2 - Б .... итд. Ограничено лишь Вашей фантазией, я в качестве примера привел русский, но это может быть к примеру трольий,
пусть так и будет. Опустим момент с клавиатурой. Будем только документы смотреть. Заполнили вы таблицу соответствия отображаемым символам. Теперь у Вас есть кодировка. Назовите, как угодно Вы теперь можете составлять (нужна клавиатура) и смотреть (нужны шрифты) трольи документы в созданной кодировке. Это условно, следующий момент программа просмотра/редактирования. Но и на этом этапе уже можно утверждать что Вы создали кодировку. Как хранятся ваши фалы - как байты; без метаданных о кодировке.
Отображение - только при правильной интерпретации (через iconv или редактор) (на примере Ubuntu)
Шрифты Выбираются по Unicode-кодам после декодирования (Тут тоже момент про глифы, они должны быть, если символ уникален)
Следующий этап - внедрить ее в ОС.
Нужна тролья локаль (тут почитайте погуглите как и что устроено)
Но один из компонентов явно связан, это LC_CTYPE (Какие байты считаются буквами. Как переводить в верхний/нижний регистр. Какие символы — пробелы, цифры и т.д.) и LC_COLLATE (Правила сортировки строк)
Остается iconv. Для него потребуется написать модуль для glibc (модуль преобразования (.so-файл) )
Все у Вас теперь своя тролья кодировка.
Это обобщенное описание, не претендующее на истину в первой инстанции, но поможет Вам понять принцип. Ну и отсутствие практической пользы, только как академический интерес. Да и вопрос наверно должен звучать "как подружить экзотическую кодировку с ОС" и для каждой ОС будут свои методы.