2009-03-30 13 views
5

Parte de mi solicitud http tiene 'espacio' en la URL, pero no es reconocida por el iPhone. Tengo que cambiar 'espacio' a '% 20' siempre que haya un 'espacio' en la url. Ahora tengo que enviar un mensaje escrito por el usuario al servidor y puede tener tantos "espacios" como quiera el usuario. Parece que tengo que reemplazarlos todos. (StringByReplacingOccurrencesOfString)Pregunta sobre el carácter de NSString inválido en la URL en el iPhone

Convertir el 'espacio' a '% 20' es el que ocasionalmente encuentro. Mi pregunta es, ¿cuál de los otros personajes de NSString no puede usarse directamente en el iPhone?

Respuesta

19

creo que este es un enfoque mejor:

NSString* escapedUrl = [originalUrl 
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

Si se quiere entender cómo funciona la codificación URL, echar un vistazo a este URL.

1

Consulte RFC 2396 para conocer todos los detalles sangrientos. Los siguientes caracteres deben escaparse:

 
Control characters (ASCII 00-1F and 7F) 
Space 
< 
> 
# 
% 
" 

los siguientes caracteres son prudente utilizar sin escapar debido a que algunas puertas de enlace y otros agentes de transporte son conocidos para modificar veces estos personajes, o se utilizan como delimitadores:

{ } | \^[ ] `

Cuestiones relacionadas