NSStrings d'encodage d'URL et de codage HTML
Est leur méthode pour encoder/décoder HTML et URL (dans Xcode, en Objective-C)?
[NSString stringWithContentsOfFile:<#(NSString *)path#> encoding:<#(NSStringEncoding)enc#> error:<#(NSError **)error#>]
Cela ne semble pas fonctionner de la façon dont je m'attendais. J'ai pensé qu'il convertit les caractères spéciaux comme "<" équivalents en entités HTML à savoir "<" dans ce cas.
Voici une référence à la w3school lien relatif à ce sujet (en général):
HTML Codage d'URL de Référence
Remerciant d'avance.
source d'informationauteur Mustafa
Vous devez vous connecter pour publier un commentaire.
Retourne une représentation du récepteur à l'aide d'un codage donnée permettant de déterminer le pourcentage échappe nécessaires pour convertir le récepteur dans un cadre juridique chaîne d'URL.
et
Renvoie une nouvelle chaîne de caractères composée par le remplacement, dans le receiver pour cent s'échappe avec la correspondance des caractères déterminés par un codage donnée.
La méthode que vous citez lit un fichier à partir du disque avec un encodage des caractères (UTF-8 ou ASCII). Il n'a rien à voir avec l'URL ou le code HTML de s'échapper.
Si vous souhaitez ajouter une URL pour cent s'échappe, vous voulez cette méthode:
Assurez-vous de lire la documentation au sujet de cette méthode, car il y a certaines subtilités à propos de ce qu'il s'échappe et qu'il le laisse seul. Dans certains cas, vous pouvez avoir à utiliser le plus complexe, mais plus souple,
CFURLCreateStringByAddingPercentEscapes()
. (Si vous le faites, notez que vous pouvez lancerCFStringRef
àNSString *
et vice-versa.)Il n'y a rien construit en que je sais faire XML/HTML style entité s'échapper, mais cette fonction doit gérer les bases:
De le faire en HTML/XML entité encodage, vous pouvez utiliser un CFMutableString fonction:
NSString *result = .....;
CFStringTransform((CFMutableStringRef)result, NULL, kCFStringTransformToXMLHex, false);
En définissant le dernier paramètre de CFStringTransform de vrai, il doit travailler pour le décodage (hex) les entités.
Utilisation
CFStringTransform
pour en entité HTML de codage/décodage:CFStringTransform((CFTypeRef)yourMutableString, NULL, CFSTR("Any-Hex/XML"), FALSE );
Vous avez besoin d'utiliser l'unité de soins intensifs à transformer les "Tout-Hex/XML".
kCFStringTransformToXMLHex
n'est pas assez agressif.