我有这个十六进制字符串:
\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 :(
答案 0 :(得分:0)
对我来说,看起来像Unicode字符(特别是CJK表意文字)。
使用NSScanner扫描字符串。扫描到反斜杠,add whatever you scanned to a mutable string。然后,扫描反斜杠并将其丢弃,然后扫描x并扔掉它。
然后,扫描四个单个字符,这将是数字(NSScanner没有扫描单个字符的方法,因此您需要使用characterAtIndex:
自己获取它们,然后调整扫描仪的扫描位置因此)。执行十六进制数字字符到数字和数学的适当转换,以便从它们组合单个数字,并且您将获得由转义序列表示的代码点(字符值)。将该单个字符添加到字符串中。
重复此操作,直到输出字符串用完为止,您将输入字符串及其所有转义序列转换为带有未转义字符的字符串。