Necesito convertir NSString en Unicode a NSString en ASCII cambiar todos los caracteres locales: A a A, S a S, O para O, ü au, Y así sucesivamente. ..NSString - Unicode a ASCII equivalente
¿Cuál es la forma más sencilla de hacerlo?
Necesito convertir NSString en Unicode a NSString en ASCII cambiar todos los caracteres locales: A a A, S a S, O para O, ü au, Y así sucesivamente. ..NSString - Unicode a ASCII equivalente
¿Cuál es la forma más sencilla de hacerlo?
-[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]
.
Todos los ejemplos que proporcione se manejan como lo desee. Parece que los personajes no tienen un análogo obvio, como ☃, ve a '?'.
Eso es todo. Gracias. – Jacek
Esto solucionó mi problema http://stackoverflow.com/questions/6204718/status-code-0-on-google-geocode-api-from-iphone-sim-but-but-works-fine-on-web-non-e/6204970 # 6204970, gracias! – quantumpotato
La codificación NSASCIIE del Objective C solo admite hasta 127, el conjunto de caracteres que está buscando está más allá de 127 en la tabla ASCII.
NSASCIIStringEncoding Estricta codificación ASCII de 7 bits dentro de caracteres de 8 bits; ASCII valora 0 ... 127 solamente. Disponible en Mac OS X v10.0 y posterior. declarado en NSString.h.
NSData *data = [decode dataUsingEncoding:[NSString defaultCStringEncoding]];
decode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Ken respuesta reemplazará a "AE" con "AE" y "ß" con "s", pero no reemplazará ligaduras œ, ij, ff, fi, fi, fi, ffl, pies, st , ...
una solución mejorada es insertar primero las líneas adicionales de mapeo para manejar todo bien:
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);
solución perfecta http://stackoverflow.com/questions/6204718/status-code -0-on-google-geocode-api-from-iphone-sim-but-works-fine-on-web-non/6204970 # 6204970 felicitaciones ... – Moacir