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:@""])

代わりに length メソッドを使用します。

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