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