`
zjjzmw1
  • 浏览: 1371817 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

iOS中编码转化

    博客分类:
  • iOS
ios 
阅读更多

iOS中编码转化

 

1.UTF-8转化

 

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

 

    //转换成UTF-8

 

    NSString *dataUTF8 = [data stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 

    NSLog(@"%@",dataUTF8);

 

    //UTF-8GBK,将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 = [dataUTF8 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 

    NSLog(@"%@",dataGBK);

 

 

 

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

 

 

将上述方法封装,如下:

 

//UnicodeUTF-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 = [NSMutableString stringWithString:input];  

 

    [outputStr replaceOccurrencesOfString:@"+"  

 

                               withString:@" "  

 

                                  options:NSLiteralSearch  

 

                                    range:NSMakeRange(0, [outputStr length])];  

 

    

 

    return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  

 

}

2.UTF-8和Unicode转化

//UnicodeUTF-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 = [NSPropertyListSerializationpropertyListFromData:tempData  

 

                                                           mutabilityOption:NSPropertyListImmutable   

 

                                                                     format:NULL  

 

                                                           errorDescription:NULL];  

 

    

 

    return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n"withString:@"\n"]; 

 

}

 

 

 

 

 

+(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:@"%@",[string substringWithRange:NSMakeRange(i, 1)]];

 

        }

 

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

 

        {

 

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

 

            

 

        }

 

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

 

        {

 

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

 

            

 

        }

 

        else

 

        {

 

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

 

        }

 

    }

 

    return s;

 

}

 

分享到:
评论

相关推荐

    IOS Emoji 编码提取

    这个“IOS Emoji 编码提取”项目旨在帮助开发者方便地获取并共享iOS系统中的Emoji编码,使得这些编码能够在多个平台上通用。 首先,我们需要了解Emoji的基本概念。Emoji是由Unicode标准定义的一系列图形字符,它们...

    iOS FFmpeg软编码demo

    在iOS FFmpeg软编码demo中,通常会有一个简单的用户界面,允许用户开启/关闭摄像头,调整编码参数,以及查看编码后的视频预览。这个demo是学习和理解FFmpeg软编码在iOS上实现的一个良好起点。 6. **优化** 软编码...

    ios Unicode编码日志处理

    在iOS开发过程中,Unicode编码是一个重要的概念,它用于表示世界上几乎所有的文字系统,包括中文、英文、日文等。Unicode编码让多语言的软件能够统一处理各种字符,从而避免了不同编码格式导致的乱码问题。本文将...

    ios-地理编码与反地理编码.zip

    在iOS开发中,地理编码(Geocoding)与反地理编码(Reverse Geocoding)是两个重要的地理位置处理技术。它们主要用于将地理位置坐标转换为人类可读的地址信息,或者将地址信息转换为地理位置坐标。本压缩包“ios-...

    IOS 地图 地理位置编码

    在iOS开发中,地理位置编码(Geocoding)是一项重要的功能,它允许开发者将人类可读的地址转换为经纬度坐标,反之亦然。这在地图应用、导航服务、位置跟踪等场景中尤为关键。苹果地图服务(MapKit框架)提供了这种...

    iOS经纬度编码转换

    iOS自带地图为高德地图,很容易让人误解为和高的SDK一样。但是经纬度标准和国内高的地图经纬度标准不一致,iOS系统内置为国际标准(WGS-84),国内高德地图SDK地图为GCJ-02)&lt;火星坐标&gt;(百度地理坐标为(BD-09))。很...

    IOS中文数据转换成拼音首字母

    在iOS开发中,有时我们需要将中文字符转换为其拼音首字母,以便进行中文数据的排序、搜索或者特定功能的实现。这个“IOS中文数据转换成拼音首字母”的项目,由国外的专家开发,提供了这样的功能。它能够帮助开发者...

    IOS图片BASE64编码解码

    在iOS开发中,图片的BASE64编码与解码是一种常见的数据处理技术,它涉及到字符串与二进制数据之间的转换。BASE64是一种用于将任意二进制数据转化为ASCII字符编码的方法,通常用于在网络上传输非ASCII字符或者作为...

    ios 属性自动转换工具

    在iOS开发中,高效地处理网络请求返回的数据并将其转化为模型对象是十分关键的步骤。传统的做法是手动编写代码来解析JSON数据,并将其赋值给对应的模型类属性,这一过程繁琐且容易出错。"ios 属性自动转换工具"正是...

    IOS-图片编码-Base64-例子

    在iOS开发中,有时我们需要将图片数据转换成字符串格式以便在网络上传输,这时Base64编码就显得尤为重要。Base64是一种用64个字符来表示任意二进制数据的方法,它将二进制数据转化为可打印的ASCII字符,使得图片可以...

    iOS 显示汉字的Unicode和UTF-8编码

    在iOS开发中,显示汉字涉及到了字符编码的重要概念,包括Unicode和UTF-8。这两个术语在计算机科学领域中是至关重要的,特别是在处理多语言文本时。让我们深入了解一下这两个概念及其在iOS中的应用。 首先,Unicode...

    ios开发音频转换

    在iOS开发中,音频处理是一项重要的技能,尤其是涉及到音频文件的转换。本示例主要探讨的是录音功能以及AMR和WAV两种音频格式之间的转换。下面将详细介绍这两个关键知识点。 一、iOS录音功能 在iOS平台上,我们...

    ios amr录音格式转换

    总结,iOS平台的AMR录音格式转换涉及到音频编码技术、跨平台兼容性和文件格式转换。通过自定义编码器或利用开源库,我们可以实现iOS设备的AMR录音,并保证文件在其他支持AMR的平台上的兼容性。在实际开发中,要根据...

    ios简体中文全局转繁体中文

    标题"ios简体中文全局转繁体中文"所涉及的知识点是iOS应用中的语言转换功能,特别是如何将应用内的简体中文文本自动转换为繁体中文。这一功能通常是通过集成特定的资源代码来实现的。 描述中提到,“只要把这个资源...

    iOS-音频-格式转换(pcm转成mp3)

    在iOS开发中,音频处理是一项常见的任务,尤其是涉及到音频格式转换时。本篇文章将深入探讨如何在iOS中将PCM(脉冲编码调制)音频数据转换为MP3格式。PCM是一种未经压缩的原始数字音频格式,而MP3则是广泛使用的有损...

    ios开发emoji编码对应的plist文件

    本话题主要围绕如何理解和处理iOS中的Emoji编码以及相关的plist文件。 首先,`plist`(Property List)文件是苹果操作系统中用于存储数据的一种格式,它能够保存各种类型的数据,如字符串、数字、数组、字典等。在...

    IOS 音频转换 VoiceConverter(支持64位)

    3. **音频编码与解码**:音频转换过程中涉及到音频编码和解码。VoiceConverter可能包含了多种编码器和解码器,以支持各种音频格式的读取和写入。例如,AAC编码因其高压缩率和高质量而被广泛使用,而FLAC则是无损音频...

    iOS,Swift4.2编码教程

    `会将错误转换为可选值,如果发生错误则返回nil,减少了需要大量try-catch块的情况。 3. **API设计指南更新**:Swift 4.2遵循了更新的API设计指南,使系统框架的命名和用法更加一致。比如,许多函数名的动词位置...

    iOS 字符串转中文

    在iOS应用中,如果你需要将中文字符串转化为拼音,以便进行模糊搜索或拼音输入法的支持,这个库就非常有用。它提供了一个API接口,可以轻松地将中文字符转换成对应的拼音表示,这在很多中文搜索场景下非常实用。 ...

    iOS音视频硬件编码源码,iOS原生不包含任何三方库音视频编码源码demo

    在这个源码中,音频编码部分可能利用了AudioToolbox的AudioConverter服务,这是一个高效的音频转换接口,能够将不同格式的音频数据转换为硬件支持的编码格式。此外,它可能还使用了AudioQueue服务来实现音频的实时...

Global site tag (gtag.js) - Google Analytics