网络通信过程中常用的的一种编码及解码的方法,算是简单的加密...
一、
#pragma mark - 将NSString转化为unicode字符串
-(NSString *)turnToUnicodeWith:(NSString *)curStr{
NSMutableString * result = [[[NSMutableString alloc] initWithString:@""] autorelease];
for (int i=0; i<[curStr length]; i++) {
NSRange range = NSMakeRange(i, 1);
NSString * subStr = [curStr substringWithRange:range];
NSData * data = [subStr dataUsingEncoding:NSUnicodeStringEncoding];
NSString * tempStr = [NSString stringWithFormat:@"%@",data];
char c1 = [tempStr characterAtIndex:[tempStr length]-5];
char c2 = [tempStr characterAtIndex:[tempStr length]-4];
char c3 = [tempStr characterAtIndex:[tempStr length]-3];
char c4 = [tempStr characterAtIndex:[tempStr length]-2];
[result appendFormat:@"%c%c%c%c",c3,c4,c1,c2];
}
return [result uppercaseString];
}
二、
#pragma mark - 将NSData转化为NSString
-(NSString *)turnToString:(NSData *)data{
const char * buffer = [data bytes];
NSInteger dataLengh = [data length];
int j=0;
NSMutableString * resultStr = [[[NSMutableString alloc] initWithString:@""] autorelease];
while (j<dataLengh) {
char c1 = buffer[j];
j = j+1;
char c2 = buffer[j];
j = j+1;
char c3 = buffer[j];
j = j+1;
char c4 = buffer[j];
NSString * str = [NSString stringWithFormat:@"%c%c%c%c",c1,c2,c3,c4];
NSString * ascStr = [self replaceUnicode:str];
[resultStr appendString:ascStr];
j = j+1;
}
return resultStr;
}
三、
//将unicode码转换为ascii字符
//比如码:"4e00" 转换为字符:"一"
-(NSString *)replaceUnicode:(NSString *)unicodeStr {
NSString *tempStr0 = [NSString stringWithFormat:@"\\u%@",unicodeStr];
NSString *tempStr1 = [tempStr0 stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
NSString *tempStr3 = [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];
NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
NSString* resultStr = [NSPropertyListSerialization propertyListFromData:tempData
mutabilityOption:NSPropertyListImmutable
format:NULL
errorDescription:NULL];
NSString * returnStr = [resultStr stringByReplacingOccurrencesOfString:@"\r" withString:@""];
return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"];
}