【发布时间】:2018-06-11 12:53:26
【问题描述】:
我的应用程序的网络请求已编码。
在 Objective-C 中
NSData *encodeData = [str dataUsingEncoding:NSUTF8StringEncoding];
dataStr = [encodeData base64EncodedStringWithOptions:0];
我想把它转换成 swift。 这是快速代码:
let dataEncodeTemp = dataTempStr.data(using: String.Encoding.utf8)
let dataStr = dataEncodeTemp?.base64EncodedString(options: Data.Base64EncodingOptions(rawValue: 0))
我想,结果应该是一样的。但事实并非如此。
Objective-C 数据:
(lldb) po str// initial
{"userType":2,"password":"qazwsx2","account":"15921810000"}
(lldb) po dataStr // encoded
eyJ1c2VyVHlwZSI6MiwicGFzc3dvcmQiOiJxYXp3c3gyIiwiYWNjb3VudCI6IjE1OTIxODE3MDUzIn0=
迅捷数据:
po dataTempStr // initial
"{\"userType\":2,\"account\":\"15921810000\",\"password\":\"qazwsx2\"}"
(lldb) po dataStr
▿ Optional<String> // encoded
- some : "eyJ1c2VyVHlwZSI6MiwiYWNjb3VudCI6IjE1OTIxODE3MDUzIiwicGFzc3dvcmQiOiJxYXp3c3gyIn0="
我想知道原因,并解决它。
我会试试桥。
有什么好的解决办法吗?
【问题讨论】:
-
那是两个不同的字符串(不同顺序的键值对)。为什么 Base64 编码的字符串应该相等?
标签: objective-c swift encode