iOS - stringByRemovingPercentEncoding возвращает ноль для одинарных / двойных кавычек - PullRequest
0 голосов
/ 05 июня 2018

У меня есть URLRequest, полученный от делегата UIWebView (shouldStartLoadRequest), и я преобразовал его в объект NSData.После этого я конвертирую его в строку NSS, в которой у вас есть что-то вроде этого:

test% 22% 3A% 22Whats + идет + на% 22% 7D% 7D% 2C% 7B% 22 * ​​1004*

но, конечно, теперь мне нужно избавиться от всех этих процентных последовательностей.Моя проблема, кажется, в том, что если я имею дело с одинарными кавычками (% 92) или двойными кавычками (% 94), метод stringByRemovingPercentEncoding возвращает nil.Это не относится к другим специальным символам, таким как $, ^, &, (,), *, #.

Вот пример кода:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{

NSData *data = request.HTTPBody;
NSString* myString=[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];


myString = [[myString stringByReplacingOccurrencesOfString:@"+" withString:@" "]stringByRemovingPercentEncoding];

}

Так что же здесь происходит с одинарными и двойными кавычками?Что я должен сделать, чтобы этот метод не возвращал nil ??

1 Ответ

0 голосов
/ 05 июня 2018

Я отмечаю это как решенное.Пожалуйста, посмотрите на эти ссылки:

https://forums.developer.apple.com/thread/89706
https://discussions.apple.com/thread/8082282

...