Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Unicode的转换>&燃气轮机;U+;9FFF以形成URL_Objective C - Fatal编程技术网

Objective c Unicode的转换>&燃气轮机;U+;9FFF以形成URL

Objective c Unicode的转换>&燃气轮机;U+;9FFF以形成URL,objective-c,Objective C,试图将包含U+20000到U+2B81F范围内转义unicode(例如:\u3400)的字符串转换为URL格式,但不起作用。U+3400到U+9FFF的范围工作正常 NSString *string1 = @"\u9FFF"; string1 = [string1 stringByReplacingPercentEscapesUsingEncoding:NSUnicodeStringEncoding]; NSURL *url1 = [NSURL URLWithString:[NSString s

试图将包含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:

输出:url2:(空)


基本上,我想要的是将转义的Unicode(\u3400到\u2B81F)列表转换为URL(甚至NSString)。如果有其他方法可以通过其他字符串转换手段实现这一点,我将非常感激。

我不知道为什么在NSString已经进行UTF-8编码的情况下,您要尝试对Unicode字符进行反转义:

编辑:我知道了!它当然根本不支持NSLog(),但它不是(null),这才是最重要的

const char * str = "\0xF0\0xA0\0x80\0x80";
NSString *string2 = [NSString stringWithUTF8String:str];
NSURL *url2 = [NSURL URLWithString:[NSString stringWithFormat:@"http://en.wikipedia.org/Search?search=%@", string2]];
NSLog(@"url2: %@", string2);

你说得对,科达菲,逃跑真的没用。我运行了你的行,但是我仍然得到了一个零字符串作为
\u20000
\u9FFF
)可能是因为\u2000是一个空格。根据这一点,\u20000是一个汉字。在U+20000到U+2B81F的整个范围内都是相同的行为,对应于CJK统一表意文字扩展B、C、D和CJK兼容表意文字补充(2F800–2FA1F)。找到了!那个字符肯定很难找到。它在C中使用
\uD840\uDC00
进行转义,而不是
\u20000
;科多菲,谢谢。整个过程的目的是将\u20000(或00020000,我认为它是UTF-32;from)转换为F0 A0 80 80(UTF-8)。如果我能做到这一点,我应该能够为\uD840\uDC00或F0 A0 80构建URL。你知道如何做到这一点吗?我现在对这个很困惑。。。
const char * str = "\0xF0\0xA0\0x80\0x80";
NSString *string2 = [NSString stringWithUTF8String:str];
NSURL *url2 = [NSURL URLWithString:[NSString stringWithFormat:@"http://en.wikipedia.org/Search?search=%@", string2]];
NSLog(@"url2: %@", string2);