我无法通过插入%20向我的网址添加空格。我已尝试过两次
[mystring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
和
[mystring stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
但他们两个都有同样的错误。每当我看到它们输出的内容,而不是看到空格时,我会看到0X1.E2A803A48E621P-682。
我正在插入类似"这是示例文本"。 有没有人遇到这个错误,可能知道如何解决它? 提前谢谢!
答案 0 :(得分:4)
即使你自己提供的答案中的第二个例子也是错误的。
方法stringByAddingPercentEscapesUsingEncoding不会更改字符串。这是一种返回字符串的转义版本的方法。
此代码:
[new_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
什么都不做。它会根据您忽略的方法调用创建字符串的转义版本。你想要这个:
new_string =
[new_string stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
答案 1 :(得分:0)
好的,我正在使用文本字段中的文字:
[text_field.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
甚至
[(NSString*)text_field.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
但我通过先将它放入一个字符串然后格式化它来修复它;
NSString * new_string=text_field.text;
[new_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
这有效......我完全不知道为什么。如果有人可以发布为什么有效,而不是前两个会很棒。