如何在Objective-C源代码中转义Unicode字符?

时间:2009-05-07 10:11:20

标签: iphone objective-c unicode escaping

我对这个问题感到非常愚蠢,但文档和谷歌都没有给我任何爱。

我想在我的iPhone应用程序的源代码中插入字符串文字中的Unicode字符。我知道它的十六进制值。什么是适当的转义序列?就此而言,我忽略了哪些明显的信息来源会告诉我这个?

5 个答案:

答案 0 :(得分:63)

示例:

NSString *stuff = @"The Greek letter Beta looks like this: \u03b2, and the emoji for books looks like this: \U0001F4DA";

答案 1 :(得分:10)

如果您不想将其直接放在字符串中,可以使用如下格式说明符:

[string stringByAppendingFormat:@"%C", 0x2665];

答案 2 :(得分:3)

更现代的方法:

我不确定该功能何时添加到该语言中,但截至2015年,至少 Objective-C字符串文字可以包含任何Unicode字符。例如,我标记我的日志行与表情符号,因为他们独特的颜色是我更容易选择它们的方式:

message:@" \n \n\t‼️ Error: %@"

所以,如果你有角色而不仅仅是代码点,并且你想在静态字符串中使用它而不是动态生成它,这是一个很好的方法,因为你立即知道你的角色是什么只是通过观察它来使用。

答案 3 :(得分:1)

适当的转义序列将是

的内容
wchar_t * str = L"\x0627";

请参阅此问题:character constant:\000 \xhh

编辑:哦,对不起,我错过了iPhone和Objective-C标签。以上内容适用于通用C / C ++,但我没有使用iPhone开发,因此您的里程可能会有所不同。

答案 4 :(得分:-3)

\是目标c中的转义字符,在要转义的字母之前使用它,如:

NSString temp = @" hello \"temporary.h\" has been inported";

如果您在textview或logs中打印临时字符串,您会看到"也被打印,因为我们之前使用了\这是转义字符