Мне нужно преобразовать NSString в Юникода в NSString в ASCII изменения всех локальных символов: А до, Ś к S, Ó к O, ü к и, и так далее. ..NSString - Unicode в ASCII эквивалентную
Каков самый простой способ сделать это?
Мне нужно преобразовать NSString в Юникода в NSString в ASCII изменения всех локальных символов: А до, Ś к S, Ó к O, ü к и, и так далее. ..NSString - Unicode в ASCII эквивалентную
Каков самый простой способ сделать это?
-[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]
.
Все приведенные вами примеры обрабатываются так, как вы хотите. Похоже, что персонажи без очевидного аналога, такие как ☃, переходят к '?'.
Все. Спасибо. – Jacek
Это исправило мою проблему http://stackoverflow.com/questions/6204718/status-code-0-on-google-geocode-api-from-iphone-sim-but-works-fine-on-web-non-e/6204970 # 6204970, спасибо! – quantumpotato
Объектив NSASCIIEncoding Objective C поддерживает только до 127, набор символов, который вы ищете, находится за пределами 127 в таблице ASCII.
NSASCIIStringEncoding Строгая 7-битная кодировка ASCII в 8-битных символах; Только значения ASCII 0 ... 127. Доступен в Mac OS X версии 10.0 и выше. Объявлено в NSString.h.
NSData *data = [decode dataUsingEncoding:[NSString defaultCStringEncoding]];
decode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Кен ответ заменит "æ" с "ае" и "ß" с "с", но не заменит лигатуры О.Е., ij, далее, ц, фл, FFI, FFL, футы, ул ...
усовершенствованное решение является первым вставить дополнительные строки отображения, чтобы обрабатывать все отлично:
string = [string stringByReplacingOccurrencesOfString:@"Œ" withString:@"OE"];
string = [string stringByReplacingOccurrencesOfString:@"œ" withString:@"oe"];
string = [string stringByReplacingOccurrencesOfString:@"Đ" withString:@"D"];
string = [string stringByReplacingOccurrencesOfString:@"đ" withString:@"d"];
string = [string precomposedStringWithCompatibilityMapping];
NSData *data = [string dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *newString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSString *unicode = @"Chào mừng đến với Việt Nam.";
NSString *standard = [unicode stringByReplacingOccurrencesOfString:@"đ" withString:@"d"];
standard = [standard stringByReplacingOccurrencesOfString:@"Đ" withString:@"D"];
NSData *decode = [standard dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *ansi = [[NSString alloc] initWithData:decode encoding:NSASCIIStringEncoding];
NSLog(@"ANSI: %@", ansi);
идеальное решение http://stackoverflow.com/questions/6204718/status-code -0-on-google-geocode-api-from-iphone-sim-but-works-fine-on-web-non/6204970 # 6204970 поздравления ... – Moacir