在Windows系统中,获取汉字的机内码一般可以直接获取到正确的,但是在iOS系统中,我发现用常规的方法获取的内码是错误的,因为不同的操作系统对于汉字的编码方式是不一样的.
最后找到了一个非常规方法来获取到了汉字的机内码,方法如下:
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"--encode-->%@<-----", [self encodeString:@"简书"]);
}
- (NSString *)encodeString:(NSString *)string
{
NSString *urlEncoded = (__bridge_transfer NSString *) CFURLCreateStringByAddingPercentEscapes(
NULL,
(__bridge CFStringRef) string,
NULL,
(CFStringRef) @"!*'\"();:@&=+$,?%#[]% ",
kCFStringEncodingGB_18030_2000);
return urlEncoded;
}
经过这样会输出类似这样的字符串,
--encode-->%BC%F2%CA%E9<-----
BC和F2就是"简"字的内码,BC即是机内码高字节,F2即是机内码低字节
CA和E9就是"书"字的内码,CA即是机内码高字节,E9即是机内码低字节,
得到相应的正确的汉字机内码之后,即可获得相应的区位码.