如何在UIWebView中打开西里尔文字域?

时间:2015-03-03 14:59:56

标签: ios objective-c iphone uiwebview

我尝试在UIWebView中打开cyrillic url,但它可以打开。 我使用以下代码%

urlString = [NSString stringWithFormat:@"http://%@", urlString];
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView loadRequest:request];

如果我尝试打开https://www.google.ru/webhp?q =президент#newwindow = 1& q =президент一切正常,但当我尝试打开президент.рф时它不起作用。 我需要为开放的西里尔字母域做些什么?

1 个答案:

答案 0 :(得分:1)

要连接到IDN(国际域名)URL,您需要在Punycode中对它们进行编码。例如,此网址将编码为http://xn--d1abbgf6aiiy.xn--p1ai

不幸的是我不知道iOS中有任何内置的punycode支持。但是有第三方工具,例如NSURL-IDN(从OmniNetworking库中提取)。