object-c – Hilfe ~ Unicode zu NSString
欧阳克
欧阳克 2017-06-21 10:11:44
0
2
988

Wie der Titel schon sagt, habe ich online relativ alte zu NSPropertyListSerialization gefunden, aber ich kann diese Klassenbibliothek nicht zum Herunterladen auf Github finden...

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

Antworte allen(2)
習慣沉默

API都写的很 清楚了 Use propertyListWithData:options:format:error: instead.
[NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:NULL error:NULL];

系统库不能解决问题?

仅有的幸福

测试代码:

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:@"\\r\\n" 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;
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage