【问题标题】:Convert this kind of hex string to a NSData/NSString将这种十六进制字符串转换为 NSData/NSString
【发布时间】:2012-01-06 22:53:49
【问题描述】:

我有这个十六进制字符串:

\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 经验:(

【问题讨论】:

    标签: c cocoa nsstring hex nsdata


    【解决方案1】:

    在我看来像 Unicode 字符(特别是 CJK 表意文字)。

    使用NSScanner 扫描字符串。扫描到反斜杠和add whatever you scanned to a mutable string。然后,扫描反斜杠并丢弃它,然后扫描 x 并丢弃它。

    然后,扫描四个单个字符,这将是数字(NSScanner 没有扫描单个字符的方法,因此您需要自己使用 characterAtIndex: 获取它们,然后相应地调整扫描仪的扫描位置) .将十六进制数字字符适当地转换为数字并进行数学运算以将它们组合成一个数字,您将获得由转义序列表示的代码点(字符值)。将该单个字符添加到您的字符串中。

    重复此操作,直到输入字符串用完,您将输入字符串及其所有转义序列转换为具有非转义字符的字符串。

    【讨论】:

      猜你喜欢
      • 2011-11-23
      • 2013-05-07
      • 1970-01-01
      • 2013-12-01
      • 2014-12-17
      • 2011-09-24
      • 2014-02-24
      • 2018-01-31
      相关资源
      最近更新 更多