вопрос noob здесь.
Я пытаюсь сделать автоматический поиск и заменить процесс для значений символов ASCII в строке.
поэтому у меня есть строка, построенная из содержимогоUITextField
NSString *searchText;
searchText = (mmText.text);
тогда я делаю небольшой цикл и проверяю все введенные символы на их значения ASCII.если они не находятся в допустимом диапазоне, я хочу найти и заменить их чем-то другим (? на данный момент)
, так что, скажем, я нахожусь в цикле, и я получаю ASCII 45 символов (это минусзнак):
int asciiCode = 45;
теперь я хотел бы найти символ ASCII 45 в строке и заменить его знаком вопроса
Это то, что я делаю в данный момент:
NSString *ascStr = [NSString stringWithFormat:@"%c", asciiCode];
NSRange matchSpace;
matchSpace = [searchText rangeOfString: ascStr];
if (matchSpace.location == NSNotFound)
{}
else
NSMutableString *searchandReplace = [NSMutableString stringWithString: searchText];
[searchandReplace replaceCharactersInRange: [searchandReplace rangeOfString: ascStr] withString: @"?"];
mmText.text = searchandReplace;
}
Это прекрасно работает для обычного значения ASCII (0-255), но, похоже, не работает для расширенных значений ASCII, пришедших из иностранных языков.Например, при использовании режима корейского языка один из главных символов выглядит как двойная буква W, но при печати через NSLog он выглядит как знак авторского права.Это, вероятно, причина, по которой процедура поиска и замены не работает для него.Он имеет значение ASCII 8361.
есть идеи?спасибо!