IOS: ASIHTTPЗапрос и акценты - PullRequest
1 голос
/ 10 марта 2012

Я отправляю запрос на сервер 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 набор_символов_символов_ латинской1 набор_символов_файлов системы character_set_results utf8 character_set_server latin1 character_set_system utf8 символьный_каталог / usr / mysql / share / mysql / charsets /

Есть ли у вас идеи, как получить правильные символы вместо \ u7800?

Заранее спасибо.

1 Ответ

0 голосов
/ 26 ноября 2015

Возможно, проблема в сервере Mysql / PHP.

Ваша responseString возвращается в формате Unicode.

Вы должны изменить сервер конфигурации, однако другое решение должно преобразовывать ответ в UTF8, когда вы его получите.

Попробуйте:

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

Посмотрите на этоpost: Преобразование символа Юникод в NSString

...