Cocoa的CFHost支持IDN吗?

时间:2011-08-11 11:19:59

标签: cocoa-touch cocoa dns idn punycode

WINAPI具有将Unicode主机名转换为Punycode的方法。 Cocoa / Cocoa Touch有类似的机制吗?

2 个答案:

答案 0 :(得分:2)

有一些没有任何外部库的黑客攻击。假设您在 theUrl 中有一个Unicode URL,您可以这样做:

NSURL *urlToLoad = nil;
NSPasteboard * pasteboard = [NSPasteboard pasteboardWithName:@"RandomPB"];
[pasteboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
@try
{
    if ([pasteboard setString:theUrl forType:NSStringPboardType])
        urlToLoad = [WebView URLFromPasteboard:pasteboard];
}
@catch (NSException * exception)
{
    urlToLoad = nil;
    NSLog(@"Can't create URL from string '%@'.", theUrl);
}
return urlToLoad;

答案 1 :(得分:0)

查看SBPunyCode(更新后的链接)