IOS:ASIHTTPRequest和重音

时间:2012-03-10 11:36:12

标签: encoding asihttprequest nsurl

我向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有任何想法吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

问题可能在Mysql / PHP服务器上。

您的responseString以Unicode格式返回。

您应该更改配置服务器,但另一个解决方案应该是在您获得它时将响应转换为UTF8。

试一试:

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

看一下这篇文章:Convert Unicode character to NSString