2017-08-03 1 views
0

unten ist meine Methode für Hex in ASCII-KonvertierungKonvertieren von Hex String in ASCII-String falsches Ergebnis zeigt für 00

-(NSString*)getASCIIString:(NSString*)strHex 
{ 
    NSMutableString *strAscii = [NSMutableString string]; 
    for (int i=0;i<24;i+=2) { 
     NSString *charValue = [strHex substringWithRange:NSMakeRange(i,2)]; 
     unsigned int _byte; 
     [[NSScanner scannerWithString:charValue] scanHexInt: &_byte]; 
     if (_byte >= 32 && _byte < 127) { 
      [strAscii appendFormat:@"%c", _byte]; 
     } else { 
      [strAscii appendFormat:@"[%d]", _byte]; 
     } 
    } 
    NSLog(@"Hex: %@", strHex); 
    NSLog(@"Ascii: %@", strAscii); 
    return strAscii; 
} 

Oberhalb Methode Hex String in ASCII konvertieren, aber ich merke, für ein Szenario, wie unter mir falsches Ergebnis geben:

strHex: 4E4932313533000000000066 Ascii: NI2153 [0] [0] [0] [0] [0] f (falsch)

warum für 00 ich bin immer [0]. ?

meine Methode funktioniert vollkommen in Ordnung, nur wenn es 00 in Hex String gibt, wie ich erwähnt habe, bekomme ich [0] in Ascii String.

Bitte Lassen Sie mich getestet perfekte Konvertierungsmethode kennen ...

Vielen Dank im fortgeschrittenen

+0

vielleicht [diese] (https://Stackoverflow.com/questions/6421282/how-to-convert-hex-to-nsstring-in-objective-c) ist was Sie suchen? – Tj3n

+0

Nein meine Methode funktioniert einwandfrei, nur wenn es 00 in Hex String gibt, wie ich erwähnt habe, bekomme ich [0] in Ascii String. es sollte nicht sein .... – user2813740

+0

Laut Ihrem Code ist die Ausgabe korrekt, da ein Nullbyte (hexadezimal '0x0)' ein nicht druckbares Zeichen ist und nicht im Bereich 32 .. 127 liegt. Verwechseln Sie es nicht mit der * Buchstabe * 0 ist hex '0x30' – vadian

Antwort

1

Wenn die Hex-String ist 00, Sie den Wert 0 in _byte bekommen und damit Sie in den anderen Zweig sind, und erhalten [0] als Ergebnis für [strAscii appendFormat:@"[%d]", _byte];.

+0

ja ich weiß, aber ist das richtige Weg .... ich wollte Lösung ... wenn jemand diese Bedingung behandelt hat .... – user2813740

+0

Was ist Ihr erforderliches Ergebnis? – clemens

+0

ich weiß wirklich nicht ... Ich brauche Standard Weg ... gerade jetzt habe ich auf Google überprüft ... 00 Bedeutung NUL ... ist das richtige Weg zu behandeln .. Ich vermisse etwas ... – user2813740

Verwandte Themen