想知道是否有一种简单的方法可以在Objective C中执行简单的HTML转义/转义。我想要的是这样的伪代码:
NSString *string = @"<span>Foo</span>";
[string stringByUnescapingHTML];
哪个返回
<span>Foo</span>
希望也转义所有其他HTML实体,甚至ASCII码(例如Ӓ等)。
Cocoa Touch / UIKit中有什么方法可以做到这一点?
包含以下解决方案。可可CF具有CFXMLCreateStringByUnescapingEntities函数,但在iPhone上不可用。
@interface MREntitiesConverter : NSObject <NSXMLParserDelegate>{
NSMutableString* resultString;
}
@property (nonatomic, retain) NSMutableString* resultString;
- (NSString*)convertEntitiesInString:(NSString*)s;
@end
@implementation MREntitiesConverter
@synthesize resultString;
- (id)init
{
if([super init]) {
resultString = [[NSMutableString alloc] init];
}
return self;
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)s {
[self.resultString appendString:s];
}
- (NSString*)convertEntitiesInString:(NSString*)s {
if (!s) {
NSLog(@"ERROR : Parameter string is nil");
}
NSString* xmlStr = [NSString stringWithFormat:@"<d>%@</d>", s];
NSData *data = [xmlStr dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSXMLParser* xmlParse = [[[NSXMLParser alloc] initWithData:data] autorelease];
[xmlParse setDelegate:self];
[xmlParse parse];
return [NSString stringWithFormat:@"%@",resultString];
}
- (void)dealloc {
[resultString release];
[super dealloc];
}
@end
转义是引用单字符的方法.在单个字符前面的转义符(\)告诉shell不必特殊解释这个字符,只把它当成字面上的意思。 但在一些命令和软件包里,比如说 echo 和 sed,转义一个字符可能会引起一个相反的效果--因为它们可能触发那个字符的特殊意思。 一些转义字符的表示的特殊意思 和 echo,sed 连用时: \n 表示新行 \r 表示回车 \t 表示水平的制表符 \v 表示垂直的制表符 \b 表示后
如果源文本中出现了正则表达式中的运算符,如(,使用( 无法匹配下列文本中的括弧,这时要使用\ 进行转义。用 \(匹配[“运算优先级”一节中的所有运算符,都要用这种形式: \运算符 在文本中匹配\本身,要用 \\ 非运算符前使用 \ ,则有特殊的意义,例如\n匹配一个换行符。常用转义字符: 转义字符 涵义 常规匹配 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹
问题内容: 我想将包含转义字符的字符串转换为普通格式,就像Python的词法分析器所做的一样: 当然,无聊的方法是将所有已知的转义字符一一替换:http : //docs.python.org/reference/lexical_analysis.html#string- literals 您将如何在上述代码中实现? 问题答案: 几个类似的编解码器是可用的,如ROT13和十六进制。 上面是Pyth
问题内容: 目前,我过去通常在字符串中转义不需要的HTML标记,但是后来我意识到它也可以转义带有重音的字符,这是我不想要的。 您是否知道任何用于转义HTML标记的解决方案,但请保留我的特殊字母(对某些人来说,这是正常的;])。 提前致谢! 巴拉斯 问题答案:
问题内容: (注意:这个问题不是关于转义查询,而是关于转义结果) 我正在使用GROUP_CONCAT将多行合并为一个逗号分隔的列表。例如,假设我有两个(示例)表: 我想列出所有帖子以及对帖子发表评论的每个用户名的列表: 给我: 这很好用,但是如果用户名包含逗号会破坏用户列表。MySQL是否具有可以让我转义这些字符的功能?(请假定用户名可以包含任何字符,因为这只是示例架构) 问题答案: 如果用户名中
问题内容: 所以我在下面有一些示例动态JSON,我遇到的麻烦是正确地转义了所有内容,以便可以由JSON.parse或Jquery.parseJSON正确处理,由于某种原因,当前它不是。我尝试替换所有引号,但无法解决任何问题… 问题答案: 在JSON内部,字符串中的引号需要使用反斜杠转义:。 在JavaScript内部,字符串文字中的引号和反斜杠需要使用反斜杠转义:。 如果确实需要在JS字符串文字中