【发布时间】:2011-11-05 06:50:30
【问题描述】:
我正在尝试为 Mail.app 提供一些简单的 html:列表、粗体、一些斜体。但是,我注意到如果我使用像£ 这样的字符,那么 Mail.app 就不会显示任何内容。我意识到我需要转换为 HTML 实体,例如 £(此处为完整列表:http://www.w3schools.com/tags/ref_entities.asp)。我有一个适用于我的用户想出的大多数角色的部分解决方案,但它远不是一个可靠的解决方案:
- (NSString*) makeValidHTML:(NSString*)str {
str = [str stringByReplacingOccurrencesOfString:@"£" withString:@"£"];
str = [str stringByReplacingOccurrencesOfString:@"¢" withString:@"¢"];
str = [str stringByReplacingOccurrencesOfString:@"¥" withString:@"¥"];
str = [str stringByReplacingOccurrencesOfString:@"©" withString:@"©"];
str = [str stringByReplacingOccurrencesOfString:@"®" withString:@"®"];
str = [str stringByReplacingOccurrencesOfString:@"°" withString:@"°"];
str = [str stringByReplacingOccurrencesOfString:@"¿" withString:@"¿"];
str = [str stringByReplacingOccurrencesOfString:@"¡" withString:@"¡"];
str = [str stringByReplacingOccurrencesOfString:@"‘" withString:@"'"];
str = [str stringByReplacingOccurrencesOfString:@"'" withString:@"'"];
str = [str stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
str = [str stringByReplacingOccurrencesOfString:@"\"" withString:@"""];
str = [str stringByReplacingOccurrencesOfString:@"“" withString:@"""];
str = [str stringByReplacingOccurrencesOfString:@"<" withString:@"<"];
str = [str stringByReplacingOccurrencesOfString:@">" withString:@">"];
return str;
}
有没有一种标准方法可以做到这一点,而不必列出所有可能的保留字符?
【问题讨论】:
标签: cocoa email html-entities macos