2010-02-10 10 views
1

J'essaie d'obtenir les numéros ASCII que je charge à partir d'un fichier à convertir en texte brut. J'ai regardé NSASCIIStringEncoding, mais quand je l'exécute, il retourne juste ce que j'ai entré.Objective-C ASCII au texte brut

Voici le code que je utilise:

NSData *asciiData = [[myWords objectAtIndex:d] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *test = [[NSString alloc] initWithData:asciiData encoding:NSASCIIStringEncoding]; 

Voici un exemple:

chaîne ASCII: 117 32 119 97

Résultats attendus: u wa?

+1

Qu'attendez-vous en tant que numéros ASCII sont en texte brut – Mark

+0

Eh bien, je m'attendais au texte que ces chiffres représentent, mais il n'a pas eu lieu, et je ne pouvais pas trouver la réponse, alors je demande –

+0

Vous devez analyser chaque séquence de chiffres sous la forme d'un nombre, puis générer cette séquence de nombres sous la forme d'une chaîne. –

Répondre

2

Sur la base des commentaires sur votre question, il semble que votre fichier d'entrée ressemble à ceci:

65 66 67 

techniquement huit caractères ASCII: le caractère pour le chiffre « 6 », le caractère de la chiffre '5', le caractère d'un espace '', etc.

Si vous voulez lire ces chiffres, puis afficher les caractères ASCII qu'ils représentent, vous devriez lire le fichier en utilisant initWithContentsOfFile de NSString, puis utiliser NSScanner pour convertir ces séquences de caractères en nombres. Ensuite, vous pouvez produire ces chiffres directement à un fichier, les jetant en tant que type char, et le fichier résultant sera:

ABC 

Vous n'avez pas fait de déclarer que les chiffres sont ASCII lorsque vous le fichier de sortie ; ASCII est un système pour interprétant une séquence de nombres comme texte. C'est un fichier ASCII en raison du fait qu'il se passe bien lorsque vous l'ouvrez avec un éditeur de texte.