我向PHP / Mysql服务器发送请求,如下所示:
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];
我得到的回答是这样的:
NSString *responseString = [request responseString] ;
这里,responseString值应该是“pyré”,但我得到:pyr \ u7800。 Mysql / PHP服务器的编码设置为:
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 /
您对如何获得正确的字符而不是\ u7800有任何想法吗?
提前谢谢。
答案 0 :(得分:0)
问题可能在Mysql / PHP服务器上。
您的responseString以Unicode格式返回。
您应该更改配置服务器,但另一个解决方案应该是在您获得它时将响应转换为UTF8。
试一试:
NSString *responseString = [request responseString];
[NSString stringWithString:[responseString cStringUsingEncoding:NSUnicodeStringEncoding] encoding:NSUTF8StringEncoding];