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

How to open cyrillic domain in UIWebView?

我尝试在 UIWebView 中打开西里尔 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=президент 一切正常,但是当我尝试打开 президент.рф 时它不起作用。 我需要为开放西里尔域名做什么?

要连接到 IDN(国际域名)URL,您需要使用 Punycode 对其进行编码。例如,此 URL 将被编码为 http://xn--d1abbgf6aiiy.xn--p1ai.

遗憾的是,我不知道 iOS 中有任何内置的 punycode 支持。但是有第三方工具,比如NSURL-IDN (which is extracted from the OmniNetworking library).