Objective-C 和 swift 之间的编码不匹配
Encode between Objective-C and swift, does not match
我的应用程序的网络请求已编码。
在Objective-C
NSData *encodeData = [str dataUsingEncoding:NSUTF8StringEncoding];
dataStr = [encodeData base64EncodedStringWithOptions:0];
我想把它改成swift。
这是 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=
swift数据:
po dataTempStr // initial
"{\"userType\":2,\"account\":\"15921810000\",\"password\":\"qazwsx2\"}"
(lldb) po dataStr
▿ Optional<String> // encoded
- some : "eyJ1c2VyVHlwZSI6MiwiYWNjb3VudCI6IjE1OTIxODE3MDUzIiwicGFzc3dvcmQiOiJxYXp3c3gyIn0="
想知道为什么,求解决。
我要试试桥。
有什么好的解决办法吗?
它们永远不会匹配,因为这两个字符串的 JSON 键的顺序不同;一个是 userType
、password
、account
;另一个是 userType
, account
, password
.
我的应用程序的网络请求已编码。
在Objective-C
NSData *encodeData = [str dataUsingEncoding:NSUTF8StringEncoding];
dataStr = [encodeData base64EncodedStringWithOptions:0];
我想把它改成swift。 这是 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=
swift数据:
po dataTempStr // initial
"{\"userType\":2,\"account\":\"15921810000\",\"password\":\"qazwsx2\"}"
(lldb) po dataStr
▿ Optional<String> // encoded
- some : "eyJ1c2VyVHlwZSI6MiwiYWNjb3VudCI6IjE1OTIxODE3MDUzIiwicGFzc3dvcmQiOiJxYXp3c3gyIn0="
想知道为什么,求解决。
我要试试桥。
有什么好的解决办法吗?
它们永远不会匹配,因为这两个字符串的 JSON 键的顺序不同;一个是 userType
、password
、account
;另一个是 userType
, account
, password
.