1

I m sending a request to a PHP/Mysql server like this :

NSURL *url = [NSURL URLWithString:@"http://xxx/webservice.php5/"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:[self.searchBar text] forKey:@"libelle"];
[request setResponseEncoding:NSUTF8StringEncoding];
[request setDefaultResponseEncoding:NSUTF8StringEncoding];
[request setDelegate:self];
[request startAsynchronous];

And I'm getting my response like that :

    NSString *responseString =   [request responseString] ;

here, responseString value should be "pyré", but I m getting : pyr\u7800. The encoding settings of the Mysql/PHP server are :

character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/mysql/share/mysql/charsets/

Do you have any ideas of how get the right characters instead of \u7800?

Thank you in advance.

user1260928
  • 3,269
  • 9
  • 59
  • 105

1 Answers1

0

Probably , the problem is on Mysql/PHP server.

Your responseString is returning in Unicode format.

You should change the configuration server however another solution should be converting the response to UTF8 when you get it.

Try it:

NSString *responseString = [request responseString];
[NSString stringWithString:[responseString cStringUsingEncoding:NSUnicodeStringEncoding] encoding:NSUTF8StringEncoding];

Take a look in this post: Convert Unicode character to NSString

Community
  • 1
  • 1
fpauer
  • 356
  • 3
  • 9