2016-10-25 7 views
4

У меня есть .bin сохраненный с программой VB, то .bin формат:Decode шестнадцатеричная строка кодирования

String bytes | String 
06 00  | C0 E1 E0 E8 F1 E0 

Проблема заключается в том, я не знаю, как кодируется строка. Я знаю, что строка должна быть: Abaira

Может ли кто-нибудь распознать используемую кодировку?

ответ

3

Я не знаю никакой стандартной кодировки символов для этого. Это не 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.) 
+0

То, что сработало для меня было: если символ <= 127 { символ = символ + 127 } еще { символ = символ -127 } Kinda, как ваш Xor 0x80 – localhost

Смежные вопросы