尝试将包含 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(甚至是 NSStrings)。如果有其他方法可以通过其他字符串转换方式实现这一点,我将不胜感激。