繁体   English   中英

传递某些base64字符串时,NSData返回nil

[英]NSData returns nil when passing certain base64 strings

我用

[[NSData alloc] initWithBase64EncodedString:content options:0];

加载通过网络传递的二进制数据,作为JSON对象的键。 有时它可以工作,但在其他情况下却失败,例如使用string

这是由NSData本身在另一端创建的字符串:

[data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

我必须通过什么选择,为什么它返回nil? 字符串的长度是4的倍数,并且没有奇怪的字符,所以我不明白为什么它会失败?

我再次阅读了文档,特别是这一部分:

此方法的默认实现将拒绝非字母字符,包括换行符。 要支持不同的编码并忽略非字母字符,请指定NSDataBase64DecodingIgnoreUnknownCharacters的选项值。

它拒绝字符的事实意味着它显然会因为这些字符而拒绝整个字符串,因为当我在初始化程序选项中添加NSDataBase64DecodingIgnoreUnknownCharacters时,即使提到的字符串也可以使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM