Я не знаю никакой стандартной кодировки символов для этого. Это не ASCII, ни EBCDIC.
Похоже, что это тривиальное шифрование ASCII (возможно, ANSI) 8-битного (не Unicode). Сравните свою неизвестную кодировку с ASCII:
Unknown ASCII
Hex MSB LSB Hex MSB LSB
A CO 1100 0000 41 0100 0001
b E1 1110 0001 62 0110 0010
a E0 1110 0000 61 0110 0001
i E8 1110 1000 69 0110 1001
r F1 1111 0001 72 0111 0010
a E0 1110 0000 61 0110 0001
Давайте определим:
- MSB: Первый ПОЛУБАЙТОМ = наиболее значимые 4 бита
- LSB: Второй полубайт = значащих 4 бита
- _U: из Неизвестный
- _A: из ASCII
Тогда вы найдете:
- MSB_U = MSB_A Xor 0x80 (может быть MSB_A или 0x80)
- LSB_U = LSB_A + 1 (чтобы сказать, как переполнение обрабатывается я должен видеть ASCII символ 'O' или 'O')
- Тогда U является конкатенацией MSB_U & LSB_U.
Далее пример ASCII для Unknown:
ASCII Hex MSB LSB MSB Xor 0x80 LSB - 1 Concatenated Hex
H 48 0100 1000 1100 1001 1100 0111 C7
e 65 0110 1001 1110 1010 1110 1000 E8
r 72 0111 0010 1111 0011 1111 0001 F1 (as you have shown)
b 62 0110 0010 1110 0011 1110 0001 E1 (do.)
То, что сработало для меня было: если символ <= 127 { символ = символ + 127 } еще { символ = символ -127 } Kinda, как ваш Xor 0x80 – localhost