iOS 基本编码格式转化
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 基本编码格式转化相关推荐
- iOS 二进制流转化-项目笔记
自己在做一个项目时,需要使用socket通信,要和java中bytebuffer转换的属性一样,需要将所有的类型如:int,short,long,string类型转成和java或者c++通信都使用的二 ...
- ios开发--编码格式
1.url编码 ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是: NSString * encodingString = [urlString stringByAddingPe ...
- iOS 生日字符串转化年龄
一.前言 最近做一个智能幼教产品,需要通过出生年月计算儿童用户的年龄大小,写了一个简单的函数方法调用如下,希望能给有需要人有所帮助,不正之处望多指正! 复制代码 #pragma mark -- 生日转 ...
- ios 秒数转化为时间_iOS UTC秒数时间戳和日期的相互转换【原创】
什么是UTC? 协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC.不属于任意时区 简单介绍了一下,想详细了解的自己百度了. UTC秒数和日期相互转换,现在直接上代码 日期转换为时间 ...
- linux服务器上文件编码格式转化shell
服务器编码格式 iconv -f oldcharset -t newcharset .txt >(-0) .txttemp mv .txttemp .txt #!/bin/sh charset= ...
- iOS数字金额转化为大写汉字(阿拉巴数字转化为汉字)
本博文想要解决的问题,是将一串阿拉伯数字(包含小数点)转化为对应的大写汉字. 实现思路如下: 1.将这串阿拉伯数字格式化,只取小数点后两位: 2.将字符串分割为整数部分的子串和小数部分的子串: 3.遍 ...
- iOS --- 把汉字转化成拼音 Swift
extension String {/**把汉字转化成拼音*/func transformToPinYin() -> String {let mutableString = NSMutableS ...
- iOS 计算生日转化为年龄的方法
假设生日1977-8-1,当前日期2017-6-16,问:你今年多少岁?这时候根据生活中和实际档案上,我们说的年龄可能不一样,如果只用年份相减,可以说,40岁(不管你生日到了没,2017年都是40岁) ...
- iOS 关于时区转化问题
NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 转载出处 --------> 点击打开链接 好像是从ios4.1开始[NSDate date];获取的是G ...
最新文章
- JavaSE基础复习总结
- 列出系统所有未被Business transaction 引用的Products集合
- servlet的体系结构
- 动易html编辑器漏洞,动易网站管理系统删除任意文件漏洞
- Excel数据分析工具安装步骤
- arping命令 《openstack 网络》
- 《给QTreeView表项添加CheckBox和图标》:系列教程之七
- 服务器被入侵了怎么办
- 打破认知:程序设计=算法+数据结构?
- 故障排除经验——笔记本电脑重启后键盘失灵的解决办法(亲测可用)
- 社区动态——恭喜海豚调度中国区用户组新晋 9 枚“社群管理员”
- 物联网小课堂之模组SIM卡相关秘籍
- 半路接手项目,做好“沟通”很重要
- graylog+kafka+zookeeper(单机测试及源码),kafka+zookeeper组件部署(二)
- No mapping found for HTTP request with URI问题解决
- 【Hadoop快速入门】Hdfs、MapReduce、Yarn
- 网易云信携手神州信息,共同打造广东华兴银行线上视频平台
- k8s 部署pod到指定node
- C/C++常见面试知识点总结附面试真题----20220326更新
- (附源码)基于Python的“书怡”在线书店系统的设计与实现 毕业设计082332