0

确实在这里问了一个关于同样问题的问题:UTF8 的愚蠢问题,但有点搞砸了,所以我提出了一个新问题,并尝试让它更干净。

如果我再次问这个问题,我深表歉意。

我一直试图让它工作,但无法得到我想要的结果。我已经尝试了我之前的帖子中的建议,但仍然无法让它发挥作用。如您所知,我对此很陌生,并且确实尝试过阅读它。

这是场景:

  • NSMutableArray
  • 存储瑞典语字符:“ÅÄÖ”
  • NSLog 数组
  • 输出不正确

代码:

NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject:@"==="];
[myArray addObject:@"ÅÄÖ"];
[myArray addObject:@"==="];
NSLog(@"myArray: %@", myArray);

我得到的输出是:

2010-11-10 21:20:17.826 nsmutablearray_test[2976:207] myArray:(
“===”,
“\U00c5\U00c4\U00d6”,
“===”

我正在寻找的输出是:

"===",
"ÅÄÖ",
"==="

因为我已经为这个(简单的)问题测试了各种各样的东西,如果有人能告诉我解决这个问题的代码,我会非常感激?

问候

4

3 回答 3

3

\U00c5是 的 unicode 代码Å,因此从技术上讲,该输出是正确的。该字符串在内存中仍然是相同的,只是NSLog没有按照您的期望输出它。但它仍然是相同的字符串。

于 2010-11-10T20:26:32.760 回答
2

这是一个简单的解决方案:

NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject: @"==="];
[myArray addObject: @"ÅÄÖ"];
[myArray addObject: @"==="];
NSLog(@"myArray: %@", myArray);

for (NSString *string in myArray) {
    NSLog(@"%@", string);
}

输出:

Swedish[3453:a0f] ===
Swedish[3453:a0f] ÅÄÖ
Swedish[3453:a0f] ===
于 2010-11-10T20:45:29.513 回答
0

如果我没记错的话,这只是 NSLog 如何处理 UTF8 的问题。尝试先将描述存储到 NSString 中,然后再记录。

无论哪种方式,数据都是正确的,这纯粹是一个 NSLog 问题。

于 2010-11-10T20:27:07.413 回答