【问题标题】:Objective-C : Problem with Swedish characters ÅÄÖObjective-C:瑞典字符 ÅÄÖ 的问题
【发布时间】:2010-11-10 20:23:24
【问题描述】:

确实在这里问过一个关于同样问题的问题:Silly problem with 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",
"==="
)

我正在寻找的输出是:

"===",
“奥阿奥”,
"==="

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

问候

【问题讨论】:

    标签: iphone objective-c xcode4


    【解决方案1】:

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

    【讨论】:

      【解决方案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] ===
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2012-02-04
          • 1970-01-01
          • 2014-06-26
          • 1970-01-01
          • 2023-03-30
          • 1970-01-01
          • 2011-07-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多