[英]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.