web-dev-qa-db-ja.com

Objective-CソースコードでUnicode文字をエスケープするにはどうすればよいですか?

私はこれを尋ねるのは信じられないほど愚かですが、ドキュメントとGoogleからはまったく愛されていません。

IPhoneアプリのソースコードの文字列リテラルに挿入したいUnicode文字があります。私はその16進数値を知っています。使用する適切なエスケープシーケンスは何ですか?そして、そのことについて、私が見落としている明白な情報源は、これを教えてくれるでしょうか?

38

例:

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

文字列に直接入れたくない場合は、次のような形式指定子を使用できます。

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

より近代的なアプローチ:

この機能がいつ言語に追加されたかはわかりませんが、2015年以降、少なくともObjective-C文字列リテラルには任意のUnicode文字を含めることができますたとえば、私は自分のログ行に絵文字を付けます。それらの独特の色が私がそれらを簡単に見つけられる方法だからです。

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

したがって、コードポイントだけでなく、文字があり、静的な文字列で使用し、動的に生成したくない場合、これは優れたアプローチです。それ。

4
Supuhstar

適切なエスケープシーケンスは、次のようになります。

wchar_t * str = L"\x0627";

この質問を参照してください: 文字定数:\ 000\xhh

編集:ああ、すみません、iPhoneとObjective-Cのタグを逃しました。上記は一般的なC/C++に当てはまりますが、私はiPhoneの開発に携わっていないため、走行距離が異なる場合があります。

1
Christoffer