U+20000 から U+2B81F の範囲のエスケープされた Unicode (例: \u3400) を含む文字列を URL に変換しようとしていますが、うまくいきません。U+3400 から U+9FFF の範囲は問題なく動作します。
NSString *string1 = @"\u9FFF";
string1 = [string1 stringByReplacingPercentEscapesUsingEncoding:NSUnicodeStringEncoding];
NSURL *url1 = [NSURL URLWithString:[NSString stringWithFormat:@"http://en.wikipedia.org/Search?search=%@", string1]];
NSLog(@"url1: %@", url1);
出力: url1: http://en.wikipedia.org/Search?search=%E9%BF%BF
NSString *string2 = @"\u20000";
string2 = [string2 stringByReplacingPercentEscapesUsingEncoding:NSUnicodeStringEncoding];
NSURL *url2 = [NSURL URLWithString:[NSString stringWithFormat:@"http://en.wikipedia.org/Search?search=%@", string2]];
NSLog(@"url2: %@", url2);
出力: url2: (ヌル)
基本的に、エスケープされた Unicode (\u3400 から \u2B81F) のリストを URL (または NSString) に変換したいのです。他の文字列変換手段でこれを達成する別の方法があれば、感謝します。