Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Category to add internationalized domain name support to NSURL

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 IDNSDK-1.1.0
Octocat-spinner-32 IFUnicodeURL
Octocat-spinner-32 IFUnicodeURL-LICENSE.txt
Octocat-spinner-32 updated text


IFUnicodeURL is a category for NSURL which will allow it to support Internationalized domain names in URLs.


Usage is quite simple. Where you'd have normally used NSURL's URLWithString: (or initWithString:) methods, simply use the unicode versions added by the category. There is also a method to retrieve the URL as a string with the hostname converted back into Unicode:

NSURL *url = [NSURL URLWithUnicodeString:@"http://➡.ws/鞰齒"];
NSLog( @"The URL: %@", [url absoluteString] );
NSLog( @"The Unicode URL: %@", [url unicodeAbsoluteString] );


This uses code from IDN SDK from Verisign, Inc. The entire IDN SDK source package is included in IDNSDK-1.1.0/. I have pulled out and slightly modified (to avoid compiler and analyzer warnings) the files and headers needed so that building this in Xcode is as easy as adding the IFUnicodeURL folder to your project.

Take note of the IDNSDK license which can be found in IDNSDK-1.1.0/doc. (The license is basically a BSD-like license.) The IFUnicodeURL category is licensed under the Simplified BSD License (see IFUnicodeURL-LICENSE.txt)


Sean Heber (@BigZaphod on Twitter)

Something went wrong with that request. Please try again.