真的,真的很糟糕。我想直接轉換它,上面的解決方案並不是很好,所以我只寫了自己的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