2016-11-28 10 views
0

Это расширение строки работает с латинскими символами, но не работает с кириллицей. Может кто-нибудь объяснить, почему, и как я могу это исправить?Swift string to ascii array CYRILIC

extension String { 
    var asciiArray: [UInt32] { 
     return unicodeScalars.filter{$0.isASCII}.map{$0.value} 
    } 
} 
+3

Что такое образец ввода и ожидаемый выход? Преобразование кириллических символов в ASCII не имеет смысла. Вы хотите UTF-8, Unicode-скаляры, ...? - Возможно, вам просто нужно удалить фильтр? –

+1

* «работает с латинскими буквами, но не работает с кириллицей» * - каким образом он работает и не работает? – luk2302

+1

Кириллические символы не являются символами ASCII. ASCII охватывает только первые 255 символов из всех возможных символов Юникода. – rmaddy

ответ

3

Я думаю, что вы путаете стандартный оригинал ASCII с одним из кириллицы расширений (например, KOI-8R). Исходный ASCII является 7-битным, тогда как для его целей расширение будет использовать коды выше 127 (и до 255).

Свойство Swift's isASCII на UnicodeScalar указывает, является ли скаляр исходным ASCII.

 Смежные вопросы

  • Нет связанных вопросов^_^