2010-06-29 1 views
4

У меня возникли проблемы с методом stringByAddingPercentEscapesUsingEncoding:. Вот что происходит:stringByAddingPercentEscapesUsingEncoding не работает с NSStrings с '0'

Когда я пытаюсь использовать метод для преобразования NSString:

"..City=Cl&PostalCode=Rh6 0Nt" 

я это это ..

"City=Cl&PostalCode=Rh62t" 

Оно должно быть:

"..City=Cl&PostalCode=Rh6%200Nt" 

Что я могу сделать по этому поводу? Заранее спасибо !!

+0

Может помочь, если ваши строки либо последовательно начинаются с «..», либо нет. Он также работает для меня на iOS 4 ('(gdb) print- [@" 0 "stringByAddingPercentEscapesUsingEncoding: 4]' prints '% 200') –

ответ

31

Для меня это:

NSString *s=[@"..City=Cl&PostalCode=Rh6 0Nt" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSLog(@"s=%@",s); 

... Выходы:

s=..City=Cl&PostalCode=Rh6%200Nt 

Вы, скорее всего, используя неправильную кодировку.

+0

Спасибо за ответ. Да, я понял тупую ошибку в моем NSLog .. У меня NSLog строковая кодированная строка NSLog (str) вместо NSLog (@ "% @", str), и это вызвало неправильный вывод на моей консоли. Спасибо! – Susanth

+3

Это хорошая идея - всегда публиковать свой код регистрации, чтобы другие могли видеть и улавливать эти типы ошибок. Каждый делает их, и по какой-то причине им трудно понять, являетесь ли вы тем, кто написал код. – TechZen

+0

@TechZen stringByAddingPercentEscapesUsingEncoding этот метод только для пробелов или всех специальных символов. – prabu

0

Это происходит, когда вы пытаетесь кодировать строку NSASCIIStringEncoding с символами, не поддерживаемыми ASCII.

Убедитесь, что вы кодируете NSUTF8StringEncoding, если строка может содержать символы UTF8 или метод возвращает nil.

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