2015-12-26 34 views
0

我已经加密的字符串,它是输出UINT8如何将UInt8转换为可连接成字符串的数据类型?

[107, 200, 119, 211, 247, 171, 132, 179, 181, 133, 54, 146, 206, 234, 69, 197] 

我如何去了解这个转换成可以被连接成然后可以用PHP解密URL的数据类型?我曾尝试将其转换为base64或十六进制,但是我找不到有关如何操作的任何信息。

回答

0
let bytes: [UInt8] = [107, 200, 119, 211, 247, 171, 132, 179, 181, 133, 54, 146, 206, 234, 69, 197] 
let base64String = bytes.withUnsafeBufferPointer { buffer -> String in 
    let data = NSData(bytes: buffer.baseAddress, length: buffer.count) 
    return data.base64EncodedStringWithOptions([]) 
} 
print(base64String) 

输出:

a8h30/erhLO1hTaSzupFxQ== 
0

的数据可以因为许多数据字节不能表示为字符串中的字符不能直接转换为字符串。明显的选择是编码为Base64或十六进制。 Apple不提供和转换为十六进制,所以最好的选择似乎是Base64。

let bytes: [UInt8] = [107, 200, 119, 211, 247, 171, 132, 179, 181, 133, 54, 146, 206, 234, 69, 197] 

// Convert to NSData 
let data = NSData(bytes: bytes, length: bytes.count) 

// Convert to Base64 
let base64String = data.base64EncodedStringWithOptions([]) 

print("base64String: \(base64String)") 

输出:

base64String:a8h30/erhLO1hTaSzupFxQ ==

中的Base64在大多数情况下需要将URL编码由于可能含有 '/' 和/或“= '字符取决于URL字符串的部分。有关URL编码信息,请参阅此SO answer

相关问题