码迷,mamicode.com
首页 > 移动开发 > 详细

iOS-文字转码

时间:2014-11-06 17:55:53      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:io   ar   os   for   sp   on   bs   ad   amp   

iOS-文字转码
形成搜索链接的时候,把从textField获取的文字转码放入。。

#pragma mark 转码
/////
- (NSString*) changeEncoding : (NSString*) str  //转换成 encoding编码
{
	if (str == nil || [str isEqualToString : @""]) {
		return str;
	}
    //	NSData* str2 = [str dataUsingEncoding : NSUTF8StringEncoding];
    //NSString* str2 = [ NSString stringWithUTF8String : [str UTF8String] ];
	const char* char2 = [str UTF8String];
	int caseDiff = (‘a‘ - ‘A‘);
	NSMutableString* out1 = [NSMutableString string];
	//StringBuffer out = new StringBuffer(s.length());
	for ( ; *char2 != ‘\0‘ ; char2++)
	{
        //	out.append(‘%‘);
		
		[out1 appendString : @"%"];
		char ch = [ self forDigit : ( *char2 >> 4) & 0xF : 16 ];
		if (![self isDigit : ch] )
		{
			ch -= caseDiff;
		}
		NSString* tmp = [[NSString alloc] initWithFormat : @"%c", ch ];
		[out1 appendString : tmp];
		
        //		out.append(ch);
		ch = [ self forDigit : *char2 & 0xF : 16 ];
		
		ch -= caseDiff;
		
		NSString* tmp1 = [[NSString alloc] initWithFormat : @"%c", ch ];
		[out1 appendString : tmp1];
		
        //		out.append(ch);
	}
    //	return out.toString();
	return out1 ;
	
}

- (BOOL) isDigit : (char) chr
{
	if (chr <= ‘9‘ && chr >= ‘0‘) {
		return YES;
	}else {
		return NO;
	}
    
}

- (char) forDigit : (int) digit : (int) radix
{
	if ((digit >= radix) || (digit < 0))
	{
		return ‘\0‘;
	}
	if ((radix < 2) || (radix > 36))
	{
		return ‘\0‘;
	}
	if (digit < 10)
	{
		return (char) (‘0‘ + 32 + digit);
	}
	return (char) (‘a‘ - 10 + digit);
}


iOS-文字转码

标签:io   ar   os   for   sp   on   bs   ad   amp   

原文地址:http://my.oschina.net/u/1451688/blog/341491

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!