NSString *artist=@"王杰";

NSString *song=@"什么时候才能够";

 

转换后

 

Artist=8B737067&Title=C04E484EF66519504D62FD801F59

算法

 

-(NSString*)toUnichar:(NSString*)src

{

    NSMutableString *arX=[NSMutableString string];

    for (int i = 0 ; i<[src length]; i++) {

        unichar ch= [src characterAtIndex:i];

        unichar b = ((((unsigned long)(ch) & 0xff00) >> 8) | (((unsigned long)(ch) & 0x00ff) << 8));

        [arX appendFormat:@"%X",b];

    }

    return arX;

}

反转

 

NSString*str=@"32003000310032003C68B1838E7FF397504E27595659ED70E8954C6BF266A86350830A00ED70E8950F5CF48B92634C889C69"

 

2012格莱美音乐大奖热门歌曲推荐


算法

 

-(NSString*)toString:(NSString*)uniStr

{

    NSMutableString *outStr = [NSMutableString string];

    int len=[uniStr length]/4;

    unichar *oux=alloca(len*sizeof(unichar));

    unichar *p = oux;

   

    for (int i=0; i<[uniStr length]/4; i++) {

        

        NSString *str=[uniStrsubstringWithRange:NSMakeRange(i*44)];

        

        unichar a =toInde([str characterAtIndex:0]);//3 3c

        unichar b =toInde([str characterAtIndex:1]);//2

        unichar c =toInde([str characterAtIndex:2]) ;//0 68

        unichar d =toInde([str characterAtIndex:3]);//0

        

        

        unichar x = c*16*16*16+d*16*16+ a*16+b;//十进制 3c68->683c

        

        memcpy(p, &x, 2);

        printf("%c,%x",*p,x);

        p++;

        

    }

    NSString *x=[[NSString allocinitWithCharacters:ouxlength:len];

    

    return outStr;

}

int toInde(unichar x)

{

    int i;

    

    switch (x) {

        case 48:

            i=0;

            break;

        case 49:

            i=1;

            break;

        case 50:

            i=2;

            break;

        case 51:

            i=3;

            break;

        case 52:

            i=4;

            break;

        case 53:

            i=5;

            break;

        case 54:

            i=6;

            break;

        case 55:

            i=7;

            break;

        case 56:

            i=8;

            break;

        case 57:

            i=9;

            break;

        case 65:

            i=10;

            break;

        case 66:

            i=11;

            break;

        case 67:

            i=12;

            break;

        case 68:

            i=13;

            break;

        case 69:

            i=14;

            break;

        case 70:

            i=15;

            break;

        default:

            break;

    }

    return  i;

}

 


好久不写C,后面的的函数写的比较...
 
再奉送一个将NSString 转换成UTF8 str

-(NSString*)toUtf8Char:(NSString*)src

{

    

    NSMutableString *arX=[NSMutableString string];

    NSData *data=[src dataUsingEncoding:NSUTF8StringEncoding];

    const char *p= [data bytes];

    for (int i = 0 ; i<[data length]; i++) {

        Byte ch = *p;

        NSLog(@"%02X,%X",*p,ch);

        p++;


        [arX appendFormat:@"%X",ch];

    }

    return arX;

}

 

@"梁静茹丝路"转换后为

 

"E6A281 E99D99 E88CB9E4B89DE8B7AF"
顺便推荐一款内码查询器UnicodeChecker,官方网站 http://earthlingsoft.net