iOS编码转换

Unicode 转换成 GBK
NSString *string= @"中国chn"
NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
char *cString = [string cStringUsingEncoding:gbkEncoding];
或者:
NSData *data = [string dataUsingEncoding:gbkEncoding];
char *cString = (char *)[data bytes];

转换时,有些字符可能不兼容,比如:¥、£、~(在iOS5.0和6.0中键盘的编码不一样),需要做特殊处理。


需要注意的是:
NSString中:
- (NSUInteger)length
返回Unicode字符数,包括单个字符组成的字符序列,因此不能用此方法确定字符串在打印时是否可见以及显示的长度。默认采用big-endian方式存储

C语言中strlen:
返回字符串的长度(非编码以后的字符数,而是编码占用的字节数),不含'\0'

int 强制类型转换 char
char占一个字节对应的十进制整数范围为0~255
当int最大超过255时,只会保留低位,舍弃高位.
即:(char)(value%256)  == (char)value
GBK采用双字节编码
UTF-8采用变长编码,最大长度4字节
ASCII:128个字符,其中33个无法显示
UNICODE编码:(兼容ISO 8859-1  前256个字符)
0~0x10FFFFFF
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值