Objective-C: проблема со шведскими символами ÅÄÖ - PullRequest
0 голосов
/ 10 ноября 2010

Задал вопрос об этой же проблеме здесь: Глупая проблема с 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 ",
" === "
)

Требуемый вывод:

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

Поскольку я проверил все виды вещей для этой (простой) проблемы, я был бы очень признателенесли кто-то хороший может показать мне код, чтобы исправить это?

С уважением

Ответы [ 3 ]

3 голосов
/ 10 ноября 2010

\U00c5 - это код Unicode для Å, так что технически этот вывод правильный. Строка остается неизменной в памяти, просто NSLog выводит ее не так, как вы ожидаете. Но это все та же строка.

2 голосов
/ 10 ноября 2010

Вот простое решение для вас:

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] ===
0 голосов
/ 10 ноября 2010

Это просто проблема с тем, как NSLog обрабатывает UTF8, если я правильно помню.Попробуйте сначала сохранить описание в NSString, а затем войти в систему.

В любом случае данные верны, это просто проблема NSLog.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...