0

私はこの配列を持っています:

const char array[3] = {173,67,0};

「°C」(ISO Latin1)のようなNSStringを取得したいと思います。いくつかのエンコーディングを試しましたが、わかりません...


ありがとう。私はあなたのコードを試しました:

const char array[3] = {176, 67, 0};
NSString *degreeC = [NSString stringWithCString: array encoding:NSISOLatin1StringEncoding];

NSLog(@"%@");

残念ながら、これにより次の出力が得られます。

°C

そして同じ、私が使用する場合

NSString *degree2 = @"°C"; 
NSLog(degree2);

xcodeで設定を行う必要がありますか?

4

1 に答える 1

0

あなたはウムラウトが欲しいと言ったが、あなたの例では度記号を描いた. ISO Latin-1 では、ウムラウトは 0xa8 (10 進数の 168) で、度記号は 0xb0 (10 進数の 176) です。本当に C 文字列から開始していて、そこから NSString が必要な場合:

const char array[3] = { 176, 67, 0 };
NSString *degreeC = [NSString stringWithCString:array encoding:NSISOLatin1StringEncoding];

または、Xcode のソース コードで非 ASCII 文字を直接使用できるため (デフォルトのエンコーディングは UTF-8)、単に NSString リテラルを作成できます。

NSString *degreeC = @"°C";
于 2012-06-22T14:16:56.623 に答える