我需要重定向到一个url传递参数作为查询字符串.
这可以包括价值中的&符号.如
string value = "This & That";
Response.Redirect("http://www.example.com/?Value=" + Server.UrlEncode(value));
Run Code Online (Sandbox Code Playgroud)
然而,这会返回http://www.example.com/?Value=This+&+That
我应该用什么来编码这个字符串?
编辑:感谢Luke指出显而易见的,代码确实正常工作.我道歉,毕竟我的问题不是一个有效的问题!
我将要访问的页面有很多旧的遗留代码,它显然正在进行某种编码和解码,使得它看起来好像我的urlencode不能正常工作.
不幸的是,我的解决方案是完全放弃使用&,直到可以重写有问题的代码.难道你不讨厌旧代码!
此代码段不起作用,我收到"身份验证失败".来自服务器的响应.有任何想法吗?
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
initWithURL:
[NSURL URLWithString:@"http://www.tumblr.com/api/write"]];
[request setHTTPMethod:@"POST"];
[request addValue:_tumblrLogin forHTTPHeaderField:@"email"];
[request addValue:_tumblrPassword forHTTPHeaderField:@"password"];
[request addValue:@"regular" forHTTPHeaderField:@"type"];
[request addValue:@"theTitle" forHTTPHeaderField:@"title"];
[request addValue:@"theBody" forHTTPHeaderField:@"body"];
NSLog(@"Tumblr Login:%@\nTumblr Password:%@", _tumblrLogin, _tumblrPassword);
[NSURLConnection connectionWithRequest:request delegate:self];
[request release];
Run Code Online (Sandbox Code Playgroud)
双方_tumblrLogin并_tumblrPassword通过运行stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding在其他地方在我的代码.我的登录电子邮件的格式为"address+test@test.com".它适用于直接登录到tumblr,但我想知道"+"字符是否导致编码问题?它没有被逃脱.应该是吗?
感谢Martin的建议,我现在正在使用CFURLCreateStringByAddingPercentEscapes我的登录名和密码.我仍然遇到同样的问题,我的身份验证失败了.
我发送的帖子包含文字,数字和数据.数字和数据工作正常,但我遇到文本问题,因为它可能包含&符号(&).例如
page.php?text=Hello World & Space.
Run Code Online (Sandbox Code Playgroud)
现在我发现服务器收到了"&",但读起来好像是一个新的变量.所以它看到(我认为):
text = "Hello World "
Space. =
Run Code Online (Sandbox Code Playgroud)
我确实读过,我可以尝试对文本进行编码,使其看起来像是一个URL(例如""[space]变成"%20")但是没有办法正确编码.我得出结论:
textToPOST = [text stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)
但这不会编码&符号,而是其他所有内容.结果是:
some text ü blablabla
Run Code Online (Sandbox Code Playgroud)
变成
some%20text%20ü%20blablabla
Run Code Online (Sandbox Code Playgroud)
与&未编码.那我怎么能这样做,请帮忙.
非常感谢
使用stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding对NSString进行URL编码不会对@符号进行编码.解决这个问题的正确方法是什么?谢谢.
有人可以帮我解密一下这段代码吗?它是在用户按下按钮提交数据时执行的,或者在这种情况下,是iPhone应用程序中的"问题".
我知道它正在将字符串发送到我在服务器上托管的phpscript.php,但我不熟悉的是发生的长命令列表.
NSUserDefaults *p = [NSUserDefaults standardUserDefaults];
[p setObject:[NSString stringWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://website.com/phpscript.php?user=%@&pass=%@&cat=%@&sub=%@&body=%@",[[p valueForKey:@"user"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[[p valueForKey:@"pass"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],sport,@"",[[tvQ.text stringByReplacingOccurrencesOfString:@"\n" withString:@" "] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]]] forKey:@"q"];
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google API在我的应用程序中放置一些图形,但它不适用.我在互联网上测试了其他图像的代码并且有效.
码:
- (void)viewDidLoad {
[super viewDidLoad];
UIImage *myimage = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: @"http://chart.apis.google.com/chart?cht=bvo&chd=t:10,50,60,80,40&chl=Hello|World|hi&chs=250x100"]]];
UIImageView *test = [[UIImageView alloc] initWithImage:myimage];
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 100.0)];
[myView addSubview:test];
[self.view addSubview:myView];
}
Run Code Online (Sandbox Code Playgroud)
谢谢,克劳迪奥
我stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding用来将数据传递给php脚本.问题是如果字段中的字符"&"在文本中说:"某人和汽车",只保存文本"某人","&"之后的所有内容都没有.
要创建我使用的字符串[NSString stringWithFormat:],所以我在表单中有5个字段,如果我使用stringbyReplacingOcorrencesOfstring:@"&",它的作用是将整个字符串替换为文本字段中的字符'&',因此我得到错误.
有任何想法吗?