recherche

Maison  >  Questions et réponses  >  le corps du texte

objective-c - Aide ~ Unicode vers NSString

Comme l'indique le titre, j'en ai trouvé des relativement anciennes en ligne sur NSPropertyListSerialization, mais je ne trouve pas cette bibliothèque de classes à télécharger sur github...

欧阳克欧阳克2745 Il y a quelques jours995

répondre à tous(2)je répondrai

  • 習慣沉默

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

    L'API est écrite très clairement. Utilisez plutôt propertyListWithData:options:format:error:.
    [NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:NULL error:NULL];

    La bibliothèque système ne parvient pas à résoudre le problème ?

    répondre
    0
  • 仅有的幸福

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

    Code de test :

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

    Résultats d'exécution :

    Écrivez ces deux méthodes dans la catégorie 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;
    }

    répondre
    0
  • Annulerrépondre