2012-09-17 2 views
0

У меня есть форма с UItextfield и при вводе этих символов (á é í ó ú ü) и отправки на сервер методом POST содержимое этих символов преобразуется.IOS5 кодировка испанского символа

например .: это слово "НИНА" написал в текстовом поле становится на выходе, как "√ ± i√ ±"

NSString *post = [NSString stringWithFormat:@"&email=%@&password=%@&id_user=%@&iso_pais=%@&lugar=%@&titulo=%@&comment=%@&api_key=3333333",emailstring,passstring,idstring,locatedAtisocountry,cityLabel.text,title.text,description.text]; 

       NSLog(@"%@",post); 
       NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
       NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 
       NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
       [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.myweb.com/api/exp?format=json"]]]; 
       [request setHTTPMethod:@"POST"]; 

Выход методы поста является:

&email=username&password=5555&id_user=1032&iso_pais=PL&lugar=Madrid&titulo=ñiña&comment=&api_key=3333333 

Но серверная сторона расшифровывает содержимое ключа «титуло» как «нина» и должна быть «ñiña»

Как исправить эту проблему с помощью этих символов?

ответ

1

Вы должны использовать проценты экранов при передаче символов через параметры GET или POST.

Используйте метод stringByAddingPercentEscapesUsingEncoding: для этого.

Также не используйте NSASCIIStringEncoding но скорее NSUTF8StringEncoding, если ваш сервер поддерживает UTF8 (надеюсь, он делает) и не позволяют с потерями Перекодировки (это часть вашего кода, который преобразует «N» в «п»)

1

Я думаю, что более безопасно использовать NSUTF8StringEncoding, когда вы пытаетесь сохранить знаки акцента вместо NSASCIIStringEncoding.

Возможно, вам потребуется обновить кодировку сервера, так как они должны совпадать.

Смежные вопросы