Я не уверен, существует ли какая-либо 6-битная кодировка, где A - 0x01
, B - 0x02
и т. Д., Но символы в большинстве 6-битных кодировок взаимозаменяемы с символами ASCII-7 посредством целочисленной арифметики. Например, символы в кодировке SIXBIT DEC можно изменить на символы ASCII-7 путем добавления 32 (основание 10) и наоборот, поскольку схема кодирования SIXBIT переносит только печатные символы в ASCII- Набор из 7 символов.
Реализация поддержки для такого преобразования с участием Byte
s и Character
s потребует от вас написать Charset
и зарегистрировать его, используя CharsetProvider
. Сложность состоит в отображении последовательностей из 6 битов в символы Юникода, поскольку Byte
является наиболее фундаментальной единицей, с которой работают кодировки Encoders
и Decoders
. С другой стороны, если вы работаете с 6-битными кодированными символами, каждый из которых требует 8-битных символов, то указанная арифметическая операция становится простой, в противном случае вам нужно будет отслеживать, находится ли кодер / декодер в недопустимом состоянии.