J'ai besoin de déterminer si un NSString donné est sous forme NFD. Comment je fais ça?Comment déterminer si un NSString est normalisé dans NFD?
Contexte:
Le chemin du fichier que je reçois de Mac OS (sous la forme d'un NSString) est sous forme décomposée canonique (DNF). Cela est particulièrement vrai lorsque le système de fichiers est HFSPlus. http://developer.apple.com/mac/library/technotes/tn/tn1150.html#CanonicalDecomposition
J'ai besoin d'une chaîne précomposée de cela. Maintenant, je veux exécuter la fonction precomposedStringWithCanonicalMapping
seulement si je sais que le nom de fichier est décomposé sous forme NFD.
La solution que je pouvais penser:
//works on the idea that NFD(NFD(x)) = NFD(x)
BOOL IsCanonicallyDecompsed(NSString *initialFilePath) {
//decompose the string to NFD form
NSString *nfdFormOfStr = [initialFilePath decomposedStringWithCanonicalMapping];
char *ndfFormUTF8 = [nfdFormOfStr UTF8String];
char *intialPathUTF8 = [initialFilePath UTF8String];
return (strcmp(ndfFormUTF8, intialPathUTF8) == 0);
}
ma solution OK? Aussi, ma compréhension de la sortie du système de fichiers (dans NFD) est-elle correcte?