iOS - 字符串中单个字符的Unicode数值

时间:2012-05-12 21:39:37

标签: ios unicode character-encoding numeric

对于iOS中的Objective-C:

如果我有一个字符串,我怎么能读取单个字符的unicode数值?

例如,如果我的字符串是:“Δ”那个unicode字符是U + 0394,那么如何读取字符串,找出“0394”然后创建一个新的字符串,说100添加到该值,所以新字符串将是字符U + 0494或“ҕ”

谢谢!

2 个答案:

答案 0 :(得分:1)

首先,你的逻辑存在谬误。 ∆ + 100 != ҕ。 Unicode以base-16(hex)计算,因此'Δ'实际上等于十进制916,而不是394。因此,0x0494 - 0x0394 = 0x0100等于256

考虑到这一点,您的代码应该如下所示:

unichar delta = 0x0394;
unichar weirdB = delta + 0x0100;

NSString *deltaStr = [NSString stringWithCharacters:&delta length:1];
NSString *weirdBString = [NSString stringWithCharacters:&weirdB length:1]; 

答案 1 :(得分:0)

  NSString *c = [NSString stringWithFormat:@"%C", unicodeValue];
  int unicode = [c intvalue];
  // then create a new one
  unicode+=100;
  // create a unicode value again
  NSString *uniString = [NSString stringWithCharacters:(unichar *)&unicode length:1];