как преобразовать это \U202a+98\U00a0910\U00a0280\U00a05305\U202c в строку?

Как преобразовать это \U202a+98\U00a0910\U00a0280\U00a05305\U202c в чистую строку +989102805305.


person Asad ali    schedule 01.08.2015    source источник
comment
каким должно быть ваше ожидаемое значение в виде строки.?   -  person Iftikhar Ali Ansari    schedule 01.08.2015
comment
stackoverflow .com/questions/8001677/   -  person VMaleev    schedule 01.08.2015
comment
Сначала сообщите нам, откуда взялась эта строка и как вы получаете отображаемые значения (т. е. как вы видите эти символы).   -  person trojanfoe    schedule 01.08.2015
comment
вам повезло, это уже строка!   -  person Sulthan    schedule 01.08.2015
comment
+989102805305 это идеальная строка, которую я хочу от этой строки   -  person Asad ali    schedule 01.08.2015
comment
Вы превращаете это в головоломку. Я ненавижу головоломки. Если вам нужна помощь, предоставьте больше информации.   -  person trojanfoe    schedule 01.08.2015
comment
когда m извлекает значение из таблицы sqlite m, получая это значение \U202a+98\U00a0910\U00a0280\U00a05305\U202c, теперь я хочу позвонить по этому номеру, используя tel://, поэтому мне нужно удалить все остальные символы, которые есть в строке, я нужен этот +989102805305.   -  person Asad ali    schedule 01.08.2015
comment
Пожалуйста, обновите свой вопрос и добавьте, что вы ищете этот номер телефона.   -  person Michael Dorner    schedule 01.08.2015
comment
@Asadali: вы путаете фактическую строку, которую вы получаете, и то, как ее отображает NSLog. Вы никогда не добьетесь успеха как программист, пока не узнаете о Unicode. Тем более, что совершенно очевидно, что вы работаете в арабской среде (как я вижу из данных в вашей строке, а не из вашего имени), где понимание Unicode даже важнее, чем для большинства людей.   -  person gnasher729    schedule 01.08.2015


Ответы (2)


Кажется, у вас возникли трудности с пониманием основной идеи о том, что такое строка. Строка — это просто набор символов. Хорошей новостью в вашем случае является то, что у вас уже есть набор символов. Теперь все, что вам нужно понять, это то, что это не конец истории — теперь вам нужно сохранить массив символов в переменную, которую мы называем строковым типом данных. Ваше понимание прояснится с большей практикой, но сейчас позвольте мне попытаться помочь вам. К счастью, есть много способов превратить это в строковый тип данных в iOS. NSString (и NSMutableString) в Cocoa позволяет легко инициализировать, форматировать и добавлять строки.

//You can use the Objective-C literal
NSString *yourStringName = @"\U202a+98\U00a0910\U00a0280\U00a05305\U202c";

//Or you can use the Objective-C format methods
NSString *formatedString = [NSString stringWithFormat:@"My string is %@", yourStringName];

Если вы NSLog выйдете, будет напечатано My string is \U202a+98\U00a0910\U00a0280\U00a05305\U202c

Новый язык Swift предоставляет несколько способов упаковки массива символов. В дополнение к NSString и всем фабричным методам, которые идут вместе с ним, у вас также есть встроенный в Swift тип данных String. Интересно, что быстрая версия класса String на самом деле не является классом, а спроектирована как быстрая структура. Узнайте больше о классах и структурах Swift здесь.

//The swift (and straight forward) String literal
var yourStringName = "\U202a+98\U00a0910\U00a0280\U00a05305\U202c"

//Or you can use swift's own string interpolation
var interpolatedString = "My string is " + yourStringName

//Also you may still use the NSString methods
var formatedString: NSString = NSString(format: "My string is %@", yourStringName)

Оба они будут println() из My string is \U202a+98\U00a0910\U00a0280\U00a05305\U202c

Любой из этих способов позволит вам создавать строки в iOS/MacOSX. Желаю вам удачи в изучении iOS и программирования в целом.

person Brandon A    schedule 01.08.2015
comment
Я думаю, что это проблема кодирования строк, потому что \u... указывает на escape-последовательность Unicode, а не на проблему Swift или NSString. - person Michael Dorner; 01.08.2015
comment
да, это проблема с юникодом, я мало что знаю о юникоде. - person Asad ali; 01.08.2015

person    schedule
comment
спасибо, майкл, я получил строку, но теперь я удаляю пробел с помощью [encodevalue stringByReplacingOccurrencesOfString:@ withString:@], это не удаление пробела, - person Asad ali; 01.08.2015
comment
NSLog(@"%@", [[encodevalue componentsSeparatedByCharactersInSet:nonAsciiCharacterSet] componentsJoinedByString:@""]); Но SO — это не служба кодирования! - person Michael Dorner; 01.08.2015
comment
спасибо, майкл.. работает... - person Asad ali; 01.08.2015