objective-c – 使用带有Obj-C的帖子发送放大器(&)

前端之家收集整理的这篇文章主要介绍了objective-c – 使用带有Obj-C的帖子发送放大器(&)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发送的帖子包含文字,数字和数据.数字和数据工作正常,但我遇到文本问题,因为它可能包含&符号(&).例如
page.PHP?text=Hello World & Space.

现在我发现了“&”由服务器接收,但读取就像新变量开始一样.所以它看到(我认为):

text = "Hello World "
Space. =

我确实读过,我可以尝试对文本进行编码,使其看起来像是一个URL(比如“”[space]变成“”)但是没有办法正确编码.我得出结论:

textToPOST = [text stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

但这不会编码&符号,而是编码其他所有内容.结果是:

some text ü blablabla

变成

some%20text%20ü%20blablabla

与&没有编码.那我怎么能这样做,请帮忙.

非常感谢

解决方法

不幸的是,stringByAddingPercentEscapesUsingEncoding不是URL编码,因为大多数人都理解它.它会转义在URL中完全无效的字符,但不包含在URL中具有特殊含义的字符.因此,它可用于“纠正”无效的用户输入的URL,但它非常不适合从转义路径和查询字符串组件创建URL.

(在JavaScript术语中,它类似于encodeURI而不是您经常需要的那个是encodeURIComponent.)

因此,为了正确地做到这一点,你需要另一种方法,无论是你自己的方法还是现有框架的捏合(这是一个非常常见的痛点,所以很多库都有解决方法).可以使用CFURLCreateStringByAddingPercentEscapes实现.有关示例代码,请参阅this answer.

猜你在找的C&C++相关文章