/**
获取单个中文字符的机内码(GBK码)
@param string 单个中文字符
@return 机内码
*/
+ (int)getGBKFromChinese:(NSString *)string{
NSString *urlEncoded = (__bridge_transfer NSString *)
CFURLCreateStringByAddingPercentEscapes(NULL,
(__bridge CFStringRef)string,NULL,
(CFStringRef)@"!*'\"();:@&=+$,?%#[]%",
kCFStringEncodingGB_18030_2000);
NSString *heigh1 = [urlEncoded substringWithRange:NSMakeRange(1, 1)];
NSString *heigh2 = [urlEncoded substringWithRange:NSMakeRange(2, 1)];
int heightValue = [self hexToInt:heigh1] * 16 + [self hexToInt:heigh2];
NSString *low1 = [urlEncoded substringWithRange:NSMakeRange(4, 1)];
NSString *low2 = [urlEncoded substringWithRange:NSMakeRange(5, 1)];
int lowValue = [self hexToInt:low1] * 16 + [self hexToInt:low2];
int result = heightValue * 256 + lowValue;
return result;
}
/**
将十六进制字符串转换为十进制数字
ABCD -> 43981 A -> 10
@param string 十六进制字符串
@return 十进制数字
*/
+ (int)hexToInt:(NSString *)string{
if (string.length > 1) {
int lengh = (int)string.length;
int result = 0;
for (int i = 0; i < lengh; i++) {
NSString *tagSting = [string substringWithRange:NSMakeRange(i, 1)];
int tagValue = [self hexToInt:tagSting] * pow(16, lengh - i - 1);
result += tagValue;
}
return result;
}
if ([string isEqualToString:@"0"]) {
return 0;
} else if ([string isEqualToString:@"1"]) {
return 1;
} else if ([string isEqualToString:@"2"]) {
return 2;
} else if ([string isEqualToString:@"3"]) {
return 3;
} else if ([string isEqualToString:@"4"]) {
return 4;
} else if ([string isEqualToString:@"5"]) {
return 5;
} else if ([string isEqualToString:@"6"]) {
return 6;
} else if ([string isEqualToString:@"7"]) {
return 7;
} else if ([string isEqualToString:@"8"]) {
return 8;
} else if ([string isEqualToString:@"9"]) {
return 9;
} else if ([string isEqualToString:@"A"]) {
return 10;
} else if ([string isEqualToString:@"B"]) {
return 11;
} else if ([string isEqualToString:@"C"]) {
return 12;
} else if ([string isEqualToString:@"D"]) {
return 13;
} else if ([string isEqualToString:@"E"]) {
return 14;
} else if ([string isEqualToString:@"F"]) {
return 15;
}
return 0;
}
获取单个中文字符的机内码(GBK码)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 如题:我有个字符串 NSString * text = @"ABCDEFGHIJKLMNOPQRSTUABCDEF...
- 很早就看过她和徐志摩的故事。但每看一次都被她的精彩人生所震撼。 她是徐志摩的第一个妻子张幼仪。但不是徐志摩喜欢的爱...
- 蝴蝶眨几次眼睛,才学会飞行……这首熟悉的旋律在耳边响起! 你不知道他为什么离开你,多的是你不知道的事……王力宏的这...