2010-11-10 56 views
0

在這裏問了一個關於同樣問題的問題:Silly problem with UTF8但有些搞砸的東西,所以我做一個新的問題,並嘗試它更乾淨。Objective-C:瑞典字符問題ÅÄÖ

如果我再問一次,我會道歉。

我一直試圖讓這個工作,但不能得到我想要的結果。我已經嘗試了我以前的帖子中的建議,但仍然無法使用它。正如你所理解的,我對這件事很感興趣,並且真的試着去閱讀它。

下面是這種情況:

  • 的NSMutableArray
  • 商店瑞典字符: 「AAO」
  • 的NSLog陣列
  • 輸出是不正確的

代碼:

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

輸出I得到的是:

2010-11-10 21:20:17.826 nsmutablearray_test [2976:207] myArray的:(
「===」,
「\ U00c5 \ U00c4 \ U00d6" ,
「===」

我期待的輸出爲:

「===」,
「AAO」,
「===」

因爲我已經測試了各種東西這個(簡單的)問題,我會很感激,如果有人很高興能告訴我解決這個問題的代碼?

問候

回答

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

\U00c5Å Unicode碼,所以在技術上,該輸出是正確的。字符串在內存中仍然是一樣的,只是NSLog不會輸出它所期望的。但它仍然是相同的字符串。

0

這只是NSLog如何處理UTF8的問題,如果我沒有記錯的話。嘗試將描述存儲到NSString中,然後記錄。

無論哪種方式,數據是正確的,這純粹是一個NSLog問題。