Преобразуйте этот тип шестнадцатеричной строки в NSData / NSString - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть эта шестнадцатеричная строка:

\x5c30\x3032\x5f5c\x3337\x345c\x3334\x366f\x5c32\x3633\x5c30\x3136\x5c32\x3132\x5c32\x3234\x4e5c\x3236\x335c\x3231\x335c\x3337\x355c\x3335\x315c\x3232\x365c\x3337

Как я могу преобразовать ее в NSString или NSData?Я хотя и использовал методы C, но у меня нет опыта в C: (

1 Ответ

0 голосов
/ 26 ноября 2011

Для меня это выглядит как символы Юникода (в частности, иероглифы CJK).

Используйте NSScanner для сканирования строки.Сканируйте до обратной косой черты и добавьте все, что вы отсканировали, в изменяемую строку .Затем отсканируйте обратную косую черту и выбросьте ее, а затем отсканируйте х и выбросьте ее.

Затем отсканируйте четыре одиночных символа, которые будут цифрами (NSScanner не имеет метода для сканирования одногосимвол, поэтому вам нужно будет получить их самостоятельно, используя characterAtIndex:, а затем соответствующим образом отрегулировать местоположение сканирования сканера).Выполните соответствующее преобразование шестнадцатеричных цифровых символов в числа и математические вычисления, чтобы собрать из них одно число, и вы получите кодовую точку (символьное значение), представленную escape-последовательностью.Добавьте этот единственный символ к вашей строке.

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

...