真的,真的很糟糕。我想直接转换它,上面的解决方案并不是很好,所以我只写了自己的ASCII转换器(静态)类。工作原本应该本地工作(虽然我必须自己填写ascii表...)
想法优化? (“ASCII”是一个静态的NSDictionary)
@implementation InternetHelper
+(NSString *)HTMLSourceFromUrlWithString:(NSString *)str convertASCII:(BOOL)state
{
NSURL *url = [NSURL URLWithString:str];
NSString *source = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
if (state)
source = [InternetHelper ConvertASCIICharactersInString:source];
return source;
}
+(NSString *)ConvertASCIICharactersInString:(NSString *)str
{
NSString *ret = [NSString stringWithString:str];
if (!ASCII)
{
NSString *path = [[NSBundle mainBundle] pathForResource:kASCIICharacterTableFilename ofType:kFileFormat];
ASCII = [[NSDictionary alloc] initWithContentsOfFile:path];
}
for (id key in ASCII)
{
ret = [ret stringByReplacingOccurrencesOfString:key withString:[ASCII objectForKey:key]];
}
return ret;
}
@end
该网页看起来不错,但我不得不相信有一个比这更好的方法:http://stackoverflow.com/questions/659602/objective-c-html-escape-unescape – user278647 2010-02-22 12:23:51
为了澄清,网页源代码显示&# - 字符,但我希望它们在NSString中具有相同的效果(如在Web浏览器中显示的那样)。 – user278647 2010-02-22 12:27:08
@user:如果它们原本是'Å'形式,并且您想将它们转换为'Å',那么否,没有比这更好的了。 – kennytm 2010-02-22 12:28:03