代码之家  ›  专栏  ›  技术社区  ›  Becca Royal-Gordon

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

  •  36
  • Becca Royal-Gordon  · 技术社区  · 17 年前

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

    5 回复  |  直到 14 年前
        1
  •  66
  •   Ky -    10 年前

    例子:

    NSString *stuff = @"The Greek letter Beta looks like this: \u03b2, and the emoji for books looks like this: \U0001F4DA";
    
        2
  •  11
  •   Marc Charbonneau    17 年前

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

    [string stringByAppendingFormat:@"%C", 0x2665];
    
        3
  •  4
  •   Ky -    11 年前

    更现代的方法:

    我不确定这项功能是什么时候添加到语言中的,但截至2015年,至少, Objective-C字符串文字可以包含任何Unicode字符。 例如,我用表情符号标记日志行,因为它们独特的颜色更容易让我识别:

    als可以包含任何Unicode字符。例如,我用表情符号标记我的日志行,因为它们独特的颜色更容易让我分辨出来:

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

    因此,如果您有字符,而不仅仅是代码点,并且您希望在静态字符串中使用它,而不是动态生成它,这是一种很好的方法,因为您只需查看它就可以立即知道您正在使用的字符。

        4
  •  1
  •   Community Mohan Dere    9 年前

    正确的逃逸顺序应该是沿着

    wchar_t * str = L"\x0627";
    

    character constant:\000 \xhh

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

        5
  •  -3
  •   blo0p3r Chen Noam    11 年前

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

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

    " 因为我们使用了 \ 在他们之前,哪个是转义字符