objektif-c - Bantuan ~ Unicode ke NSString
欧阳克
欧阳克 2017-06-21 10:11:44
0
2
953

Seperti yang dinyatakan dalam tajuk, saya telah menemui yang agak lama dalam talian tentang NSPropertyListSerialization, tetapi saya tidak dapat mencari perpustakaan kelas ini untuk dimuat turun di github...

欧阳克
欧阳克

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

membalas semua(2)
習慣沉默

API ditulis dengan sangat jelas. Gunakan propertyListWithData:options:format:error: sebaliknya.
[NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:NULL error:NULL];

.

Perpustakaan sistem tidak dapat menyelesaikan masalah?

仅有的幸福

Kod ujian:

NSString *dataStr = @"求助~ Unicode 转 NSString";
    
NSString *utf8Str = [NSString replaceUnicode:dataStr];    
NSLog(@" utf8Str = %@",utf8Str);
    
NSString *unnicodeStr = [NSString utf8ToUnicode:utf8Str];    
NSLog(@" unicode = %@",unnicodeStr);

Hasil jalankan:

Tulis dua kaedah ini ke dalam kategori 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;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan