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(十进制 168),度数符号为 0xb0(十进制 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 回答