18

const char* 文字列を NSString に変換するには、どの方法が良いのだろうか。
いくつかの事実があることがわかりました。

  • [NSString stringWithCString:length:] は一種の非推奨です。
  • [NSString stringWithCString:encoding] は私の目的に使用できます

しかし、私は長さとエンコーディングで変換したいです(エンコーディングをUTF-8に設定することで非ASCII文字がある場合はそれをうまくしたいからです)。何かご意見は?

今思うだけ

  1. std::strncpy(ch1, ch2, len) を使用して、別の char を作成し、長さでコピーします
  2. [NSString stringWithCString:encoding:] を使用

しかし、うまくいきません。

4

2 に答える 2

44

const char* 変数に名前が付けられfooている (そしてそれが null で終わる文字列を指している) 場合は、次のように言います。

[NSString stringWithUTF8String:foo]

UTF-8 は ASCII のスーパーセットであるため、これはfooUTF-8 または ASCII のどちらを指していても機能します。その後、問題なく完全な Unicode に移行できます。

于 2010-01-23T04:32:35.090 に答える
16

使用する:

[NSString initWithBytes:length:encoding].
于 2010-01-23T02:04:18.427 に答える