你能将 php 函数quoted_printable_decode() 转换为基于 NSString 的 Objective-C 函数/类别方法吗?
在 http://php.net/quoted_printable_decode 中,我找到了使用 preg_replace 来完成此操作的方法。 有人知道可以将普通 NSString 转换为 RFC 2045 第 6.7 节的代码吗?
提前致谢!
In http://php.net/quoted_printable_decode, I found ways to do it using preg_replace. Anyone who knows any code that could convert a normal NSString to something RFC 2045 section 6.7?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Cocoa 上没有方法来解码带引号的可打印字符串,但您可以轻松地自己编写一些内容,例如:
There's no method on Cocoa to decode a quoted printable string, but you could easily write something yourself, like:
对于其他寻找此功能的人,Jason Coco 的 答案非常有效,但有一个重要的错误。 返回之前需要在 utf8_string 末尾添加一个空字符。 因此,在 return 语句之前添加行
*ep = '\0';
就可以了。 另外,我将其修改为返回 NSData 对象而不是 NSString,因为解码后的字符串可能使用与 UTF-8 不同的字符编码。 像return [NSData dataWithBytes:(char *)utf8_string length:strlen(utf8_string)]; 之类的东西效果很好。 然后调用方法可以使用适当的编码将返回的数据填充回 NSString 中。
For others looking for this functionality, Jason Coco's answer works really well, but has one important bug. You need to add a null character to the end of the utf8_string before returning. So just before the return statement, add the line
*ep = '\0';
and that should do the trick. Also, I modified it to return an NSData object rather than an NSString, since the decoded string may use a different character encoding than UTF-8. Something likereturn [NSData dataWithBytes:(char *)utf8_string length:strlen(utf8_string)];
works well. Then the calling method can take care of stuffing the returned data back into an NSString using the appropriate encoding.