iphone-common-codes-ccteam源代码 CCEncoding.m(编码转换)

//
// CCEncoding.m
// CCFC
//
// Created by xichen on 11-12-18.
// Copyright 2011 ccteam. All rights reserved.
//


#import "CCEncoding.h"




@implementation CCEncoding


// log all encodings
+ (void)logAllEncodings
{
const NSStringEncoding *encodings = [NSString availableStringEncodings];
NSMutableString *str = [[NSMutableString alloc] init];
NSStringEncoding encoding;

while ((encoding = *encodings++) != 0)
{
[str appendFormat:@"%@ is %x\n", [NSString localizedNameOfStringEncoding:encoding], encoding];
}
NSLog(@"str is %@", str);
[str release];

NSLog(@"defaultCStringEncoding is %d", [NSString defaultCStringEncoding]);
}


// unicode ---> UTF8
+ (const char *)UnicodeToUTF8:(NSString *)src
{
return [src UTF8String];
}


// UTF8 ---> unicode
+ (NSString *)UTF8ToUnicode:(const char *)src
{
return [NSString stringWithCString:src encoding:NSUTF8StringEncoding];
}




// GB18030 ---> unicode
+ (NSString *)GB18030ToUnicode:(const char *)src
{
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
return [NSString stringWithCString:src encoding:enc];
}


// unicode ---> GB18030
+ (const char *)UnicodeToGB18030:(NSString *)src
{
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
return [src cStringUsingEncoding:enc];
}


// GB18030 ---> UTF8
// GB18030 --> Unicode --> UTF8
+ (const char *)GB18030ToUTF8:(const char *)src
{
NSString *unicode = [self GB18030ToUnicode:src];
return [self UnicodeToUTF8:unicode];
}


// UTF8 ---> GB18030
// UTF8 --> Unicode --> GB18030
+ (const char *)UTF8ToGB18030:(const char *)src
{
NSString *unicode = [self UTF8ToUnicode:src];
return [self UnicodeToGB18030:unicode];
}


// Unicode cStr to Unicode NSString
// you should make sure the cStr begins with 0xFF, 0xFE(the unicode flag).
+ (NSString *)UnicodeCStrToUnicode:(const char *)cStr withLen:(int)len
{
NSData *data = [NSData dataWithBytes:cStr length:len];
return [[[NSString alloc] initWithData:data encoding:NSUnicodeStringEncoding] autorelease];
}




@end
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值