iOS 字符串转ascii码,字符串转NSData

在xcode中,文件以utf8格式保存。因此,其中变量对象也是以utf8格式保存。不同语言的utf8编码不一样,不同语言的每个字符的utf8编码的字节数不一样,字节码也不一样。

但是英文的utf8编码和ascii码一样,对于英文字符,查看它的ascii码,将字符取出来,就是它的ascii码。

使用英文转换测试,如下所示:

// NSString to ASCII

NSString *string = @"A";

int asciiCode = [string characterAtIndex:0]; // 65



// ASCII to NSString

int asciiCode = 65;

NSString *string = [NSString stringWithFormat:@"%c", asciiCode]; // A

下面两组算法适用于蓝牙,wifi的协议发送

字符串转成ascii字符串:

//字符串转成ascii字符串
+(NSString *)stringToAsci:(NSString *)string {
    NSMutableString *mustring = [[NSMutableString alloc]init];
    const char *ch = [string cStringUsingEncoding:NSASCIIStringEncoding];
    for (int i = 0; i < strlen(ch); i++) {
        [mustring appendString:[NSString stringWithFormat:@"%x",ch[i]]];
    }
    return mustring;
}

字符串转data:


//字符串转成data

+(NSData*)hexToBytes:(NSString *)dataStr {
    NSMutableData* data = [NSMutableData data];
    int idx;
    for (idx = 0; idx+2 <= dataStr.length; idx+=2) {
        NSRange range = NSMakeRange(idx, 2);
        NSString* hexStr = [dataStr substringWithRange:range];
        NSScanner* scanner = [NSScanner scannerWithString:hexStr];
        unsigned int intValue;
        [scanner scanHexInt:&intValue];
        [data appendBytes:&intValue length:1];
        
    }
    return data;
}

NSData转NSString

 NSString *ssid = [[NSString alloc] initWithData:ssidData encoding:NSUTF8StringEncoding];

以下符合NSData转设备Mac地址业务:

//data转String
- (NSString *)convertDataToHexStr:(NSData *)data {
    UInt8 bytes[data.length];
    [data getBytes:&bytes range:NSMakeRange(0, data.length)];
    NSMutableString *hexStr = [NSMutableString string];
    for (int i = 0; i < data.length; i++) {
        [hexStr appendFormat:@"%02x",bytes[i]];
    }
    return hexStr;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值