问题描述
如题,网上找了都是比较旧的 关于 NSPropertyListSerialization的,可是这个类库github上都找不着下载啊...
问题解答
回答1:API都写的很 清楚了 Use propertyListWithData:options:format:error: instead.[NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:NULL error:NULL];
系统库不能解决问题?
回答2:测试代码:
NSString *dataStr = @'求助~ Unicode 转 NSString'; NSString *utf8Str = [NSString replaceUnicode:dataStr]; NSLog(@' utf8Str = %@',utf8Str); NSString *unnicodeStr = [NSString utf8ToUnicode:utf8Str]; NSLog(@' unicode = %@',unnicodeStr);
运行结果:把这两个方法写到NSString分类中
//Unicode转UTF-8+ (NSString*) replaceUnicode:(NSString*)aUnicodeString{ NSString *tempStr1 = [aUnicodeString stringByReplacingOccurrencesOfString:@'u' withString:@'U'];NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@''' withString:@'''];NSString *tempStr3 = [[@''' stringByAppendingString:tempStr2] stringByAppendingString:@'''];NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData mutabilityOption:NSPropertyListImmutable format:NULL errorDescription:NULL];return [returnStr stringByReplacingOccurrencesOfString:@'rn' withString:@'n']; }// utf8转unnicode+(NSString *) utf8ToUnicode:(NSString *)string{ NSUInteger length = [string length];NSMutableString *str = [NSMutableString stringWithCapacity:0];for (int i = 0;i < length; i++) {unichar _char = [string characterAtIndex:i];//判断是否为英文和数字if (_char <= ’9’ && _char >= ’0’) {[str appendFormat:@'%@',[string substringWithRange:NSMakeRange(i, 1)]];} else if(_char >= ’a’ && _char <= ’z’) {[str appendFormat:@'%@',[string substringWithRange:NSMakeRange(i, 1)]];} else if(_char >= ’A’ && _char <= ’Z’) {[str appendFormat:@'%@',[string substringWithRange:NSMakeRange(i, 1)]];} else { [str appendFormat:@'u%x',[string characterAtIndex:i]];} } return str;}