iphone - отображать закодированные символы, такие как å, ä, ö в UILabel

У меня есть список, который использует UILabel для каждой из его строк. Если я попытаюсь отобразить специальные символы, такие как å, ä, ö, они отобразятся как å ä ö Как преобразовать их в NSString в кодировке UTF8?


person Suchi    schedule 23.02.2012    source источник
comment
каков источник ваших данных?   -  person Mutix    schedule 23.02.2012
comment
Я получаю это со своего сервера. Он отлично отображается в веб-просмотре, но не в uilabel.   -  person Suchi    schedule 23.02.2012
comment
Как вы устанавливаете строку в метку? В зависимости от того, как вы получаете текст в NSString, вам может потребоваться установить кодировку... вы смотрели на это? Кроме того, как будет выглядеть вывод, если вы зарегистрируете 1) исходную строку 2) текст UILabel после его установки? developer.apple.com /library/mac/#documentation/Какао/Справочник/   -  person David Rönnqvist    schedule 23.02.2012
comment
Я просто делаю [secondLabel setText:str]; где str — шведские буквы (,,)   -  person Suchi    schedule 23.02.2012
comment
в журнале я также вижу это как (,,), но в веб-просмотре я вижу фактические символы   -  person Suchi    schedule 23.02.2012
comment
См. это обсуждение: stackoverflow.com/questions/1105169/ Возможно что-то там будет полезно   -  person James Thiele    schedule 23.02.2012
comment
@Suchi, в моем случае Аландские острова неправильно отображаются в списке стран. поэтому, пожалуйста, дайте мне решение для этого. Спасибо.   -  person Ilesh P    schedule 23.09.2014


Ответы (1)


Символы правильно отображаются в WebView, потому что объекты HTML правильно интерпретируются им.

Возможно, эта удобная категория NSString поможет вам отобразить текст в UILabel так, как вы хотите:

https://github.com/mwaterfall/MWFeedParser/blob/master/Classes/NSString+HTML.m

Импортируйте файлы NSString+HTML.h и NSString+HTML.m, а затем в своем классе используйте

#import "NSString+HTML.h"

и тогда вы можете использовать

NSString *decodedString = [encodedString stringByDecodingHTMLEntities];

ИЗМЕНИТЬ:

Вы также можете попробовать решение HerbertHansen на досках разработки Apple, которое не нужна целая библиотека

person Mutix    schedule 23.02.2012
comment
Есть ли способ сделать это без использования внешних библиотек? - person Suchi; 23.02.2012
comment
Я отредактировал свой ответ чем-то, что вы можете попробовать, что не требует внешней библиотеки. - person Mutix; 23.02.2012
comment
Библиотека работает просто отлично. Редактирование мне не помогло. Любые другие идеи? - person Suchi; 24.02.2012
comment
Есть ли конкретная причина, по которой использование библиотеки является проблемой для вас? - person Mutix; 24.02.2012
comment
Как раз из-за увеличения размера. Если есть более простое решение, я бы определенно пошел на это. Библиотека - худший случай для меня. - person Suchi; 24.02.2012
comment
снова отредактировал ответ с помощью решения, основанного на NSXMLParser, которое может лучше соответствовать вашим потребностям в этом случае. - person Mutix; 24.02.2012
comment
@Mutix привет, в моем случае Аландские острова неправильно отображаются в списке стран. поэтому, пожалуйста, дайте мне решение для этого. Спасибо. - person Ilesh P; 23.09.2014