私はbase64から次の文字列を終了せずにデコードしようとしています。常にnilを返します。 NSDataBase64DecodingOptionsをIgnoreUnknowCharantersに変更しようとしましたが、どちらも機能しません。私もこの答えのように詰め物を削除しようとしたswift base64 decoding returns nilしかし、私の文字列の長さは4で割り切れるので、それは動作しません。Swift 2デコードbase64は常にnilを返します
文字列
PY5ehymWfQKExWxPyOImGiQkxNjyuBREmOXtQdePVpuH9PFzizaO+WTuM1sLouTQPz5UO7csloC9GjOFqkq4POmlB9d3mMJGLB2pVCNs8t9EejOcjV4fRHaITkmfMfVbizCnTvHGBwLWXjLc7gwyhu2+S9qw0NXc5jw6EdEk+zuesrdwLgqws0hDqFSoVw57+CnvUmgXwtNfKP4p64mJ9inH/0xAMarCc5N4Wjz/zmlTyd2PoDFUC/iLdZ7csau7X2M=
オプション1
if let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters),
let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding) {
print(decodedString) // foo
}
オプション2
if let decodedData = NSData(base64EncodedString: pnpData, options: NSDataBase64DecodingOptions.init(rawValue: 0)),
let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding) {
print(decodedString) // foo
}
はあなたが私を助けることができると思います。ありがとう!!
どちらのビットがnilを返すか、データかデータから文字列を作成しますか?あなたのbase64文字列はどこから来たのですか? – Wain
Base64デコードが動作すると仮定していますが、デコードされたデータが有効なUTF-8シーケンスを表していないため、 'NSString(data:decodedData ...)'が失敗します。あなたはどんな結果を期待していますか? –
@MartinR暗号化された文字列なので、解読後に解読するためにAESを使用する必要があります。 –