С# - создать собственную кодировку для кодировки Roman8

Кодировка Roman8 не поддерживается C#, но мне нужно правильно ее использовать (строки кодирования/декодирования), поэтому я хочу знать, как лучше всего создать собственную кодировку для поддержки этой кодировки?

Этого достаточно :

class Roman8Encoding : Encoding

А Энкодер? Декодер? КодировщикFallback ? ДекодерFallback ?

Любое объяснение того, как правильно выполнять работу, приветствуется.

Спасибо !


person Arnaud F.    schedule 04.04.2011    source источник


Ответы (1)


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

person Jon Skeet    schedule 04.04.2011
comment
У меня есть время, я подожду, пока у вас есть время, чтобы объяснить мне немного больше. Тем не менее, я взглянул на ваше решение, и оно очень похоже на то, что я хочу сделать :) - person Arnaud F.; 04.04.2011
comment
@Arnaud: В таком случае я сомневаюсь, что смогу сказать что-то более существенное. Является ли Roman8 одним байтом на символ, всегда кодируя? Если да, то это сильно упростит жизнь. (Звучит так, учитывая en.wikipedia.org/wiki/HP_roman8) - person Jon Skeet; 04.04.2011
comment
Да это один байт на кодировку символов ;), в чем проще? просто нужно сделать перевод таблицы? - person Arnaud F.; 04.04.2011
comment
@Arnaud: Это упрощает написание типов Encoder и Decoder (если вам вообще нужно их писать самостоятельно; я не могу вспомнить навскидку). Да, вам в основном нужна таблица перевода: byte в char и наоборот. - person Jon Skeet; 04.04.2011
comment
так и сделаю, спасибо! Вопрос, как я могу инициализировать EncoderReplacementFallback? Когда символ не поддерживается, я хотел бы напечатать? на месте. - person Arnaud F.; 04.04.2011