0

我正在尝试向我的服务器发送一个帖子值。

它成功发送英文字符。

此代码用于寻找朋友,它不能发送 UTF-8 文本。

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope{
/*
 Update the filtered array based on the search text and scope.
 */ 
if(![searchText isEqualToString:@""]){

    NSUserDefaults * userdef = [NSUserDefaults standardUserDefaults];

    NSString *encodedSearchText = [searchText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString * uploadUrl = [NSString stringWithFormat:@"%@/%@" , GPON_URL , GPON_URL_SEARCHFRIEND];
    NSURL *url = [NSURL URLWithString:uploadUrl];


    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:encodedSearchText forKey:@"u_id"];
    [request setPostValue:[userdef objectForKey:KEY_USER_ID] forKey:@"s_username"];


    [request startSynchronous];
    [request setShouldAttemptPersistentConnection:NO];

    NSString *response = [request responseString];
    SBJsonParser * parser = [[[SBJsonParser alloc] init] autorelease];
    NSDictionary * json = (NSDictionary *)[parser objectWithString:response];


    [searchMember removeAllObjects];
    if( [[json objectForKey:@"result"] isEqual:@"YES"] ){
        [searchMember addObjectsFromArray:[json objectForKey:@"data"]];

        [self.tableView reloadData];
    }

}

}

这是我的代码。你能看到导致错误的原因吗?

4

1 回答 1

1

您似乎没有设置请求的字符串编码;尝试:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setStringEncoding:NSUnicodeStringEncoding];

此外,这是确定 NSString 是否为空的一种非常糟糕的方法:

if (![searchText isEqualToString:@""])

改用长度方法:

if ([searchText length] > 0)
于 2012-06-01T08:29:16.677 回答