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

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

概述我发送的帖子包含文字,数字和数据.数字和数据工作正常,但我遇到文本问题,因为它可能包含&符号(&).例如 page.php?text=Hello World & Space. 现在我发现了“&”由服务器接收,但读取就像新变量开始一样.所以它看到(我认为): text = "Hello World "Space. = 我确实读过,我可以尝试对文本进行编码,使其看起来像是一个URL(比如“”[spa 我发送的帖子包含文字,数字和数据.数字和数据工作正常,但我遇到文本问题,因为它可能包含&符号(&).例如
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.

总结

以上是内存溢出为你收集整理的objective-c – 使用带有Obj-C的帖子发送放大器(&)全部内容,希望文章能够帮你解决objective-c – 使用带有Obj-C的帖子发送放大器(&)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1238521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存