Il est vrai que Cacao ne propose pas de solution, mais Fondation de base fait : CFStringTransform
.
CFStringTransform
vit dans un coin poussiéreux et éloigné de Mac OS (et iOS) et est donc un joyau peu connu. Il s'agit de l'interface de l'application Compatible avec les soins intensifs moteur de transformation de chaînes de caractères. Il peut faire de la vraie magie comme des translittérations entre le grec et le latin (ou à peu près tous les scripts connus), mais il peut aussi être utilisé pour faire des tâches banales comme l'uncaping de chaînes de caractères à partir d'un serveur pourri :
NSString *input = @"\\u5404\\u500b\\u90fd";
NSString *convertedString = [input mutableCopy];
CFStringRef transform = CFSTR("Any-Hex/Java");
CFStringTransform((__bridge CFMutableStringRef)convertedString, NULL, transform, YES);
NSLog(@"convertedString: %@", convertedString);
// prints: 各個都, tada!
Comme je l'ai dit, CFStringTransform
est vraiment puissant. Il prend en charge un certain nombre de transformations prédéfinies, comme les correspondances de casse, les normalisations ou la conversion des noms de caractères unicode. Vous pouvez même concevoir vos propres transformations.
Je ne sais pas pourquoi Apple ne le rend pas disponible à partir de Cocoa.