2016-10-25 22 views
4

私はVBのプログラムで保存された.binファイルを持っている、の.bin形式は次のとおりです。デコード16進文字列のエンコーディング

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

問題は、私は文字列がエンコードされているのか分からないです。私は文字列が何であるべきかを知っています:Abaira

使用されるエンコーディングは誰でも認識できますか?

答えて

3

私はこれのための標準的な文字コードを認識していません。 ASCIIでもEBCDICでもありません。

これは、8ビット(非Unicode)のASCII(おそらくANSI)暗号化のようなものです。 ASCIIを使用して、未知のエンコーディングの比較:

  • _Uセカンドニブル=最下位4ビット:

    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:
    • をLSBファーストニブル=上位4ビットの不明
    • _A:ASCII

    次に、あなたが見つける:

    • MSB_U = MSB_A Xorのは0x80(多分MSB_Aまたは0x80の)
    • LSB_U = LSB_A + 1(オーバーフローはIは、ASCII文字 'O' や 'O' を参照する必要がどのように扱われるか教えて)
    • Uは、連結です。MSB_U & LSB_U。未知へ

    さらに例のASCII:

    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

    私のために働いた何をされました: 場合のchar <= 127 { のchar =文字+ 127 }他{ のchar = CHAR -127 } あなたのXORが好きです。0x80 – localhost

    関連する問題