NSString
非常友好的unicode。所以通常当我想创建一个包含unicode的字符串时,我可以将它直接弹出到字符串文字中,如下所示:
NSString *myString = @"Press ⌘Q to quit…";
但这不适用于使用行分隔符(AKA:NSLineSeparatorCharacter
,Unicode U + 2028,UTF-8 E2 80 A8)。编译器(正确地)将其解释为换行符,这在C语法中是禁止的。
-stringWithFormat:
也无济于事。试图
NSString *myString = [NSString stringWithFormat@"This is%don two lines…", NSLineSeparatorCharacter];
给了我一个字符串“This is8232on two lines ......”。
答案 0 :(得分:5)
结果-stringWithFormat:
是正确的方法。我只需要使用%C
作为替换,而不是%d
。 NSLineSeparatorCharacter
是枚举(因此是整数),因此编译器认为%d
是我应该使用的。但是%C
是Cocoa插入unichar
类型的方式。用一点点铸造......
NSLog(@"This is%Con two lines…", (unichar)NSLineSeparatorCharacter);
像魅力一样!
另请注意Ken的评论如下:您可以使用转义序列将字符直接嵌入到字符串文字中:
@"This is\u2028on two lines…"