数据中包含隐私信息, 所以先放个截图.
在 https://www.base64decode.org/ 中将数据放进去, 选择 AUTO-DETECT 是可以正确解码, 除此之外所有的选项都试过, 都不能正确解码, 有些中文会乱码, 有些则直接将中文变为空.
将正确解码后的数据再使用 CP936 字符集编码, 最接近原来的数据, 但还不完全一样.
使用 js 等工具可以正常解码, atob -> escape -> encodeURIComponent.
但在 Swift 中尝试了好多方法都不能正常解码, 全部都是 nil:
extension String {
func base64DecodedUsingSJIS() -> String? {
if let data = Data(base64Encoded: self) {
let decodedString = String(data: data, encoding: .init(rawValue: CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(CFStringEncodings.shiftJIS.rawValue))))
return decodedString
}
return nil
}
func base64Decoded() -> String? {
guard let data = Data(base64Encoded: self) else { return nil }
return String(data: data, encoding: .utf8)
}
func base64DecodedASCII() -> String? {
guard let data = Data(base64Encoded: self) else { return nil }
return String(data: data, encoding: .ascii)
}
}