2010-06-29 4 views
4

J'ai rencontré des problèmes avec la méthode stringByAddingPercentEscapesUsingEncoding:. est ici ce qui se passe:stringByAddingPercentEscapesUsingEncoding ne fonctionne pas avec NSStrings avec '0'

Lorsque je tente d'utiliser la méthode pour convertir le NSString:

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

Je reçois ce présent ..

"City=Cl&PostalCode=Rh62t" 

Il devrait être:

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

Que puis-je faire à ce sujet? Merci d'avance !!

+0

Aiderait si vos chaînes commençaient toujours par ".." ou pas. Il fonctionne également pour moi sur iOS 4 ('(gdb) print- [@" 0 "stringByAddingPercentEscapesUsingEncoding: 4]' imprime '% 200') –

Répondre

31

Pour moi, ceci:

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

... Sorties:

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

Vous êtes très probablement en utilisant le mauvais encodage.

+0

Merci pour la réponse. Oui, j'ai réalisé une erreur stupide dans mon NSLog .. J'avais NSLog la corde chaîne codée par NSLog (str) au lieu de NSLog (@ "% @", str) et qui avait causé la sortie incorrecte sur ma console. Merci! – Susanth

+3

Il est conseillé de toujours publier votre code de connexion afin que les autres utilisateurs puissent voir et détecter ce type d'erreur. Tout le monde les fait et pour une raison quelconque, ils sont difficiles à voir si vous êtes celui qui a écrit le code. – TechZen

+0

@TechZen stringByAddingPercentEscapesUsingEncodant cette méthode uniquement pour l'espace ou tous les caractères spéciaux. – prabu

0

Cela se produit lorsque vous essayez d'encoder en NSASCIIStringEncoding une chaîne avec des caractères non pris en charge par ASCII.

Assurez-vous que vous encodez à NSUTF8StringEncoding, si la chaîne peut contenir des caractères UTF8 ou la méthode retournerait nil.

Questions connexes