iOS 基本编码格式转化
来源:互联网 发布:域名后缀的含义 编辑:程序博客网 时间:2024/06/05 15:07
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 基本编码格式转化
- iOS 基本编码格式转化
- iOS 基本编码格式转化
- iOS 基本编码格式转化
- iOS 基本编码格式转化
- iOS 开发中常用编码格式转化
- webkit 编码格式转化
- iOS中编码转化
- iOS中编码转化
- linux文本编码格式转化
- 快速转化文档编码格式
- Win32字符串编码格式转化
- iOS 基本类型转化
- iOS的编码格式
- iOS编码格式
- 数据库编码格式转化(gb2312->utf8)
- java实现文件编码格式的转化
- Windows SOCKET编程 2-----(面向连接的通信TCP)---服务端
- CMarkUp使用简介
- 小区被臭气污染导致小孩流鼻血!无良小区隐瞒业主污染情况竟然请人删除曝光污染新闻!
- ARM 指令集的分类
- 关于一种连续求和非负效应的研究
- iOS 基本编码格式转化
- unity 插件iTween 官方例子学习心得
- 学生信息管理系统(1)————全局关系
- Android 仿微信对话列表滑动删除效果
- poj2449Remmarguts' Date
- B. Devu, the Dumb Guy
- 对“仅通过崩溃地址找出源代码的出错行”一文的补充与改进
- Sql 同表同列一条sql显示所有组合
- mssql 实现排序上移下移