iOS中编码转化

1.UTF-8转化

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

//转换成UTF-8

NSString *dataUTF8 = [data stringByAddingPercentEscapesUsingEncoding: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 = [dataUTF8 stringByReplacingPercentEscapesUsingEncoding: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 = [NSMutableString stringWithString:input];

[outputStr replaceOccurrencesOfString:@"+"

withString:@" "

options:NSLiteralSearch

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

return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

}

2.UTF-8和Unicode转化

//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"];

}

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

{

NSUInteger length = [string length];

NSMutableString *s = [NSMutableString stringWithCapacity: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 基本编码格式转化相关推荐

  1. iOS 二进制流转化-项目笔记

    自己在做一个项目时,需要使用socket通信,要和java中bytebuffer转换的属性一样,需要将所有的类型如:int,short,long,string类型转成和java或者c++通信都使用的二 ...

  2. ios开发--编码格式

    1.url编码 ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是: NSString * encodingString = [urlString stringByAddingPe ...

  3. iOS 生日字符串转化年龄

    一.前言 最近做一个智能幼教产品,需要通过出生年月计算儿童用户的年龄大小,写了一个简单的函数方法调用如下,希望能给有需要人有所帮助,不正之处望多指正! 复制代码 #pragma mark -- 生日转 ...

  4. ios 秒数转化为时间_iOS UTC秒数时间戳和日期的相互转换【原创】

    什么是UTC? 协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC.不属于任意时区 简单介绍了一下,想详细了解的自己百度了. UTC秒数和日期相互转换,现在直接上代码 日期转换为时间 ...

  5. linux服务器上文件编码格式转化shell

    服务器编码格式 iconv -f oldcharset -t newcharset .txt >(-0) .txttemp mv .txttemp .txt #!/bin/sh charset= ...

  6. iOS数字金额转化为大写汉字(阿拉巴数字转化为汉字)

    本博文想要解决的问题,是将一串阿拉伯数字(包含小数点)转化为对应的大写汉字. 实现思路如下: 1.将这串阿拉伯数字格式化,只取小数点后两位: 2.将字符串分割为整数部分的子串和小数部分的子串: 3.遍 ...

  7. iOS --- 把汉字转化成拼音 Swift

    extension String {/**把汉字转化成拼音*/func transformToPinYin() -> String {let mutableString = NSMutableS ...

  8. iOS 计算生日转化为年龄的方法

    假设生日1977-8-1,当前日期2017-6-16,问:你今年多少岁?这时候根据生活中和实际档案上,我们说的年龄可能不一样,如果只用年份相减,可以说,40岁(不管你生日到了没,2017年都是40岁) ...

  9. iOS 关于时区转化问题

    NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 转载出处    -------->    点击打开链接 好像是从ios4.1开始[NSDate date];获取的是G ...

最新文章

  1. JavaSE基础复习总结
  2. 列出系统所有未被Business transaction 引用的Products集合
  3. servlet的体系结构
  4. 动易html编辑器漏洞,动易网站管理系统删除任意文件漏洞
  5. Excel数据分析工具安装步骤
  6. arping命令 《openstack 网络》
  7. 《给QTreeView表项添加CheckBox和图标》:系列教程之七
  8. 服务器被入侵了怎么办
  9. 打破认知:程序设计=算法+数据结构?
  10. 故障排除经验——笔记本电脑重启后键盘失灵的解决办法(亲测可用)
  11. 社区动态——恭喜海豚调度中国区用户组新晋 9 枚“社群管理员”
  12. 物联网小课堂之模组SIM卡相关秘籍
  13. 半路接手项目,做好“沟通”很重要
  14. graylog+kafka+zookeeper(单机测试及源码),kafka+zookeeper组件部署(二)
  15. No mapping found for HTTP request with URI问题解决
  16. 【Hadoop快速入门】Hdfs、MapReduce、Yarn
  17. 网易云信携手神州信息,共同打造广东华兴银行线上视频平台
  18. k8s 部署pod到指定node
  19. C/C++常见面试知识点总结附面试真题----20220326更新
  20. (附源码)基于Python的“书怡”在线书店系统的设计与实现 毕业设计082332

热门文章

  1. python来写打飞机
  2. SD/MMC/SDIO 驱动分析
  3. linux虚拟机重新分配硬盘空间
  4. canvas画图并下载图片
  5. JavaScript 弹出一个可移动的框
  6. MOOC网神经网络与深度学习TensorFlow实践3——数字图像处理、TensorFlow基础
  7. ZedBoard教程PS篇(6):搭建VDMA显示通路,通过VGA输出显示图片
  8. (已解决)WORD公式,手动输入的编号,不能显示
  9. 内网ip正则表达式php,PHP使用正则表达式判断IP地址是否正确
  10. 网页制作过程中怎么配色