objective-c 将中文,GBK转化为UTF-8数据的方法

(转载注明出处:http://www.cnblogs.com/binxindoudou/archive/2013/03/24/2979340.html:)

最近在ios平台做一个利用新浪微博API获取数据的程序,在组成链接字符串获取json数据的时候,出现了问题:如果参数时英文和数字,那么可以获取到,如果是中文数据就死掉了

如下:

https://api.weibo.com/2/friendships/friends.json?access_token=2.00DPjheC0fBfSX74fc935b2dEVAjwC&screen_name=彬心典登 不能获取到数据

https://api.weibo.com/2/friendships/friends.json?access_token=2.00DPjheC0fBfSX74fc935b2dEVAjwC&screen_name=CCTV5 可以获取到数据

后来经过调试发现,是字符编码的问题。在程序中,必须将汉字转化为utf-8格式,才可进行连接访问

那么objective-c 如何将中文(GBK)转化为UTF-8呢?我从网上看到了不少是将UTF-8转化为中文的,而我需要的却没有

所以我只好自己查资料写了一个函数,效果还不错,代码贴出:

- (NSString *)GBKToUtf8Encoding:(NSString *)aString

{

NSMutableString *GBKString = [NSMutableStringstringWithFormat:@""];

for (int i = 0 ; i < [aString length] ; i++)

{

   //获取到字符的索引

NSUInteger index = i;

   //获取该字符转化为字符串,然后才可以调用编码方法(编码方法是针对字符串的)

NSString *strTmp = [[NSStringstringWithFormat:@"%C",[aString characterAtIndex:index]] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

   //拼接字符串

[GBKString appendString:strTmp];

}

return GBKString;

}

第一次写博客,希望大家多多指教:)

(转载注明出处:http://www.cnblogs.com/binxindoudou/archive/2013/03/24/2979340.html:)