将[UInte8]转换为字符串然后错误地检索它的问题

时间:2018-08-05 13:28:29

标签: ios swift encoding utf-8

我遇到一个问题,当我将[0x00,0x01,0x02,0x03,0x04]转换为字符串并将该字符串存储到cocoapods-keys中时,其值类似于:"\0\u{01}\u{02}\u{03}\u{04}" 当我取回它时,我会发现它像这样:"\\0\\u{01}\\u{02}\\u{03}\\u{04}"

因此,当我将其转换回[UInt8]时,会得到非常错误的值,并且由于\ \被视为一个反斜杠,因此我不能仅仅从该值中删除一个反斜杠,所以我不知道我想念这里

下面是代码:

let keyAlpha: [UInt8] = [0x00,0x01,0x02,0x03,0x04]
var str = String(bytes: keyAlpha, encoding: String.Encoding.utf8)

现在我们有了所需的字符串"\0\u{01}\u{02}\u{03}\u{04}" 一旦我用cocoapods-keys将其手动保存到钥匙串中

我像这样"\\0\\u{01}\\u{02}\\u{03}\\u{04}"

所以一旦我将其转换回使用:

let keyArray: [UInt8] = Array(key.utf8)

我得到了非常错误的值,请告知

0 个答案:

没有答案