james
james

Reputation: 225

Xcode, can't send UTF-8 Text

I am trying to send a post value to my server.

It successfully send English characters.

This code is for finding friend, and it can't send UTF-8 text.

- (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];
    }

}

}

here is my code. can you see what cause the error?

Upvotes: 0

Views: 489

Answers (1)

trojanfoe
trojanfoe

Reputation: 122391

You don't appear to be setting the string encoding of the request; try:

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

Also, this is a very poor way of determining if an NSString is empty:

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

Use the length method instead:

if ([searchText length] > 0)

Upvotes: 1

Related Questions