zoukankan      html  css  js  c++  java
  • IOS编码转化

    原文地址:http://blog.csdn.net/huifeidexin_1/article/details/7883984

    iOS中编码转化

    1.UTF-8转化

        NSString *data = @"你好,北京!";

        //转换成UTF-8

        NSString *dataUTF8 = [datastringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        NSLog(@"%@",dataUTF8);

        //UTF-8转GBK,将UTF8代码替换,官方解释如下。

    //Replaces all percent escapes with the matching characters as determined by the given encoding.  Returns nil if the transformation is not possible (i.e. the percent escapes give a byte sequence not legal in the given encoding).  See CFURLCreateStringByReplacingPercentEscapes in CFURL.h for more complex transformations

     

        NSString *dataGBK = [dataUTF8stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        NSLog(@"%@",dataGBK);

     

    在Xcode4.2中执行结果如下:

    将上述方法封装,如下:

     

    //Unicode转UTF-8

     

    + (NSString *)encodeToPercentEscapeString: (NSString *) input 

        // Encode all the reserved characters, per RFC 3986 

        // (<http://www.ietf.org/rfc/rfc3986.txt>) 

        NSString *outputStr = (NSString *)  

        CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault

                                                (CFStringRef)input, 

                                                NULL, 

                                                (CFStringRef)@"!*'();:@&=+$,/?%#[]", 

                                                kCFStringEncodingUTF8); 

        return outputStr; 

     

    + (NSString *)decodeFromPercentEscapeString: (NSString *) input 

        NSMutableString *outputStr = [NSMutableStringstringWithString:input]; 

        [outputStr replaceOccurrencesOfString:@"+" 

                                   withString:@" " 

                                      options:NSLiteralSearch 

                                        range:NSMakeRange(0, [outputStrlength])]; 

       

        return [outputStrstringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    }

     

    2.UTF-8和Unicode转化

     

    //Unicode转UTF-8

    + (NSString*) replaceUnicode:(NSString*)aUnicodeString

    {

        NSString *tempStr1 = [aUnicodeStringstringByReplacingOccurrencesOfString:@"\u"withString:@"\U"]; 

        NSString *tempStr2 = [tempStr1stringByReplacingOccurrencesOfString:@"""withString:@"\""]; 

        NSString *tempStr3 = [[@"""stringByAppendingString:tempStr2] stringByAppendingString:@"""]; 

        NSData *tempData = [tempStr3dataUsingEncoding:NSUTF8StringEncoding]; 

        NSString* returnStr = [NSPropertyListSerializationpropertyListFromData:tempData 

                                                               mutabilityOption:NSPropertyListImmutable  

                                                                        format:NULL 

                                                               errorDescription:NULL]; 

       

        return [returnStrstringByReplacingOccurrencesOfString:@"\r\n"withString:@" "];

    }

     

     

    +(NSString *) utf8ToUnicode:(NSString *)string

    {

        NSUInteger length = [string length];

        NSMutableString *s = [NSMutableStringstringWithCapacity:0];

        for (int i = 0;i < length; i++)

        {

            unichar _char = [string characterAtIndex:i];

            //判断是否为英文和数字

            if (_char <= '9' && _char >='0')

            {

                [s appendFormat:@"%@",[stringsubstringWithRange:NSMakeRange(i,1)]];

            }

            else if(_char >='a' && _char <= 'z')

            {

                [s appendFormat:@"%@",[stringsubstringWithRange:NSMakeRange(i,1)]];

               

            }

            else if(_char >='A' && _char <= 'Z')

            {

                [s appendFormat:@"%@",[stringsubstringWithRange:NSMakeRange(i,1)]];

               

            }

            else

            {

                [s appendFormat:@"\u%x",[stringcharacterAtIndex:i]];

            }

        }

        return s;

    }

  • 相关阅读:
    SQL Server 添加数据库没有权限等
    网站图片优化的重要性与技巧方案
    5年前端经验小伙伴教你纯css3实现饼状图
    css3 斜切角/斜边的实现方式来自BAT大神的出品
    Validate表单验证插件之常用参数介绍
    html实现邮箱发送邮件_js发送邮件至指定邮箱功能
    css重设样式_清除浏览器的默认样式
    大厂前端工程师教你如何使用css3绘制任意角度扇形+动画
    WordPress教程之如何批量删除未引用(无用)的TAG标签
    css引入的方式有哪些_四种css的引入方式与特点
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/4580236.html
Copyright © 2011-2022 走看看