Я задаю этот вопрос главным образом потому, что я искал этот сайт для возможных решений, и никто из них не разработал так, как я надеялся.Преобразование Hex String в unsigned char []
Я хотел бы выполнить преобразование этой шестнадцатеричной строки в unsigned char [].
NSString *text = @"0043600001";
в unsigned char dataSmall[] = {0x00, 0x43, 0x60, 0x00, 0x01}
Мне нужно шестнадцатеричное представление 0x ## потому, что я посылаю узел, который принимает сообщения только hexadecimal format
. Могу ли я сказать, мне тоже нужно NSScanner
выполнить эти шаги, чтобы отделить 2 символа? Действительно потерял и смутил то, что мне нужно сделать.
Это шаги для подключения и передачи сообщения шестнадцатеричное хоста:
unsigned char dataSmall[] = {0x00, 0x43, 0x60, 0x00, 0x01}
NSData *data = [NSData dataWithBytes:dataSmall length:sizeof(dataSmall)];
PS, я не знаю о NSData
части, но это, кажется, работает, когда я использую это NSData линия для отправки шестнадцатеричные сообщения на хост. Поэтому я оставляю это как есть. В настоящее время dataSmall[]
жестко закодирован, и я хотел бы узнать, как справляться с ним динамично. Хотел бы, чтобы все это помогло.
EDIT 1 Ах, я пропустил важную информацию. Шестнадцатеричные данные представляют собой сообщение ISO8583
.
Можете ли вы объяснить, откуда идет шестнадцатеричная строка? Кажется очень странным, что у вас будет куча шестнадцатеричных данных в виде строки. – rmaddy
Сначала это немного запутывает меня, поэтому я сожалею, если не дам вам ответы, которые вы ищете. Пока что это будет из 'TextField'. Но мне еще нужно что-то сделать, например преобразование строки ASCII в шестнадцатеричные данные. И да, было бы странно преобразовать шестнадцатеричную строку в шестнадцатеричные данные. –
Если вы хотите преобразовать текст в NSData, который вы можете отправить на сервер, просто введите 'NSData' следующим образом:' NSData * textData = [someTextField.text dataUsingEncoding: NSUTF8StringEncoding]; '. Вот и все. Теперь у вас есть байты текста, закодированные в UTF-8 и готовые для отправки на сервер. Теперь сервер может использовать эти данные для воссоздания строки UTF-8. Нет необходимости в этом шестнадцатеричном преобразовании. – rmaddy