2012-03-10 69 views
1

餘米發送到PHP請求/ MySQL服務器這樣的:IOS:ASIHTTPRequest和口音

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二進制 character_set_results UTF8被character_set_server LATIN1 character_set_system UTF8 character_sets_dir的/ usr/MySQL的/共享/ MySQL的/字符集/

你對如何獲得正確的字符而不是\ u7800有任何想法嗎?

預先感謝您。

回答

0

可能是問題出在Mysql/PHP服務器上。

您的responseString以Unicode格式返回。

您應該更改配置服務器,但是另一種解決方案應該將響應轉換爲UTF8。

試試:

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

看一看在這個崗位:Convert Unicode character to NSString