Как преобразовать набор шестнадцатеричных байтов в пользовательскую строку - PullRequest
0 голосов
/ 23 июня 2011

Так что в основном мне нужно найти способ преобразовать это;29 38 33 30 3D 34 FF, к этому;Зидан

FF - символ, означающий конец имени.

До сих пор я понял, что могу прочитать это до его буквальной строки,все дружелюбны для того, что я пытаюсь создать.

Теперь только по одному этому имени вы можете догадаться, над чем я работаю, но это единственная вещь, на которой я застреваю -вся пользовательская строка символов.

Ответы [ 3 ]

0 голосов
/ 23 июня 2011

Ах, я вижу, что происходит. Помните, что при использовании Hex у вас есть Unicode, Shift JIs и в вашем случае Little-endian. Как я понимаю, похоже, у вас неправильная шестнадцатеричная таблица для того, что вы сейчас пытаетесь прочитать. Извините, если мой ответ не помог достаточно.

0 голосов
/ 20 марта 2012

Если вы декодируете шестнадцатеричные значения и ожидаете, что выходные данные будут закодированы как ASCII, то вы получите именно то, что вы заявили выше, как видно с помощью этого онлайн шестнадцатеричного декодера .

Строка не являетсяочевидно, ascii кодируется.Я не могу быть уверен в точной кодировке, но, посмотрев на значения, ожидаемый результат и разницу между значениями, вы можете предсказать, как отобразить значения в буквы:

AZ = 0x04 - 0x29

EG: 'A' = 04, 'B' = 05, .... 'Z' = 29

az = 0x30 - 0x55

EG: 'a' = 30, 'b '= 31, ....' z '= 55

Этого должно быть достаточно, чтобы получить читаемую строку.

0 голосов
/ 23 июня 2011

Это код для получения строки из шестнадцатеричной строки,

private string HexString2Ascii(string hexString)
    {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i <= hexString.Length - 2; i += 2)
    {
    sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hexString.Substring(i, 2), System.Globalization.NumberStyles.HexNumber))));
    }
    return sb.ToString();
    }

Будет рад, если вы объясните, в каком формате находится входная строка, шестнадцатеричный или байтовый массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...