NSString *str=@"313233343536";//这是123456的ascii码
怎样把这一段字符串转换成123456呢
NSString *string = [NSString stringWithFormat:@"%c", asciiCode]; // 

解决方案 »

  1.   

    原来是CC的zzxap啊, 123456的ascii码不应该是 "49 50 51 52 53 54"嘛?
      

  2.   

    - (NSString *)TextFromAsciiCodesString:(NSString *)string
    {
        NSArray *components = [string componentsSeparatedByString:@" "];
        NSUInteger len = [components count];
        char new_str[len+1];
        
        int i;
        for (i = 0; i < len; ++i)
            new_str[i] = [[components objectAtIndex:i] intValue];
        
        new_str[i] = '\0';
        
        return [NSString stringWithCString:new_str
                                  encoding:NSASCIIStringEncoding];
    }
    转换后输出就是123456
      

  3.   


    NSString *str=@"495051525354";
        const char* cstr = [str UTF8String];
        printf("%s\n", cstr);    
        char result[strlen(cstr) / 2 + 1];
        int resultIdx = 0;
        for(int i=0; i<strlen(cstr); i+=2){
            char* tmp = malloc(3);
            tmp[0] = cstr[i];
            tmp[1] = cstr[i+1];
            tmp[2] = '\0';
            int a = atoi(tmp);
            //printf("%d\n", a);
            result[resultIdx++] = a;
            free(tmp);
        }
        result[strlen(cstr) / 2] = '\0';
        printf("%s\n", result);你的ASCII码是错的
      

  4.   

    ios开发超级群,高手和高手之间的交流,来者注明来自CSDN:43146334
      

  5.   


    NSString *str=@"495051525354";
        const char* cstr = [str UTF8String];
        printf("%s\n", cstr);    
        char result[strlen(cstr) / 2 + 1];
        int resultIdx = 0;
        for(int i=0; i<strlen(cstr); i+=2){
            char* tmp = malloc(3);
            tmp[0] = cstr[i];
            tmp[1] = cstr[i+1];
            tmp[2] = '\0';
            int a = atoi(tmp);
            //printf("%d\n", a);
            result[resultIdx++] = a;
            free(tmp);
        }
        result[strlen(cstr) / 2] = '\0';
        printf("%s\n", result);ios开发超级群,高手和高手之间的交流,来者注明来自CSDN:43146334
      

  6.   

    楼主的ASCII码没错,是16进制的
      

  7.   

    我错了。返回的数据是NSDATA 直接转为uft8 的NSString就行了