从十六进制字符获取数据

get data from hexadecimal character

本文关键字:数据 获取 字符 十六进制      更新时间:2023-10-16

我有如下代码:

NSString* str = @"π";
const char* chr = [str UTF8String];

chr 的值是"\xcf\x80",它是十六进制宪章的序列。要写入 RTF 文件,我需要从此十六进制字符中提取排除"\x"的值。

我应该怎么做才能获取数据?

问候

在 C 中,char 类型是整型类型,因此您可以生成字符的十六进制表示形式,就像生成任何其他整数值一样 - 使用 %x 格式说明符。要将完整的 C 字符串转换为十六进制字符串,只需迭代字符串并构建结果即可。粗略的代码,直接输入到答案中,因此预期错误:

NSString *str = ...
const char *cStr = [str UTF8String];
NSMutableString *hexStr = [NSMutableString new]; // for result
while( *cStr ) // loop while cStr is not pointing at a null char
{
   [hexStr appendFormat:@"%02x", *cStr++]; // %02x - zero fill, width 2, hex
}