cari

Rumah  >  Soal Jawab  >  teks badan

objektif-c - Bantuan ~ Unicode ke NSString

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...

欧阳克欧阳克2745 hari yang lalu996

membalas semua(2)saya akan balas

  • 習慣沉默

    習慣沉默2017-06-21 10:13:44

    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?

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-06-21 10:13:44

    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;
    }

    balas
    0
  • Batalbalas