@Domenic: Я не получаю его.. разве Вы не можете сделать этого с автосвойствами?:
public string Title { get; }
или
public string Title { get; private set; }
это, к чему Вы обращаетесь?
Возвращает представление получателя с использованием заданной кодировки для определения процента экранирования, необходимого для преобразования получателя в допустимую строку URL.
- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
и
Возвращает новую строку, созданную путем замены в получателе все проценты экранируются с совпадающими символами, как определено данной кодировкой.
- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
Метод, который вы цитируете, читает файл с диска с заданной кодировкой символов (например, UTF-8 или ASCII). Это не имеет ничего общего с экранированием URL или HTML.
Если вы хотите добавить экранирование процентов URL, вам нужен этот метод:
[myString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
Убедитесь, что вы прочитали документацию по этому методу, потому что есть определенные тонкости в том, от чего он ускользает, а что оставляет в покое. В некоторых случаях вам, возможно, придется использовать более сложную, но более гибкую, CFURLCreateStringByAddingPercentEscapes ()
. (Если вы это сделаете, обратите внимание, что вы можете преобразовать CFStringRef
в NSString *
и наоборот.)
Я не знаю ничего, что могло бы создать сущность в стиле XML / HTML. экранирование, но эта функция должна обрабатывать основы:
NSString * convertToXMLEntities(NSString * myString) {
NSMutableString * temp = [myString mutableCopy];
[temp replaceOccurrencesOfString:@"&"
withString:@"&"
options:0
range:NSMakeRange(0, [temp length])];
[temp replaceOccurrencesOfString:@"<"
withString:@"<"
options:0
range:NSMakeRange(0, [temp length])];
[temp replaceOccurrencesOfString:@">"
withString:@">"
options:0
range:NSMakeRange(0, [temp length])];
[temp replaceOccurrencesOfString:@"\""
withString:@"""
options:0
range:NSMakeRange(0, [temp length])];
[temp replaceOccurrencesOfString:@"'"
withString:@"'"
options:0
range:NSMakeRange(0, [temp length])];
return [temp autorelease];
}