Character zu dezimalem Unicode-Wert

joecze

Mitglied
Thread Starter
Dabei seit
20.10.2007
Beiträge
98
Reaktionspunkte
0
Moin zusammen,
eine Anfängerfrage: Wie erhalte ich den dezimalen Unicode-Wert eines Characters? Versucht habe ich es folgendermaßen:
Code:
int i = [[NSNumber numberWithUnsignedChar:c] intValue];
Das funktioniert mit den ASCII-Zeichen prima. Versuche ich's jedoch mit dem EURO-Zeichen erhalte ich '172' statt der korrekten '8364'.
Vielen Dank!
 
https://developer.apple.com/library...asses/NSString_Class/Reference/NSString.html:

The NSString class has two primitive methods—length and characterAtIndex:—that provide the basis for all other methods in its interface. The length method returns the total number of Unicode characters in the string. characterAtIndex: gives access to each character in the string by index, with index values starting at 0.

Code:
@implementation NSString (MyUnicodeCharacterValue)

- (unichar)unicodeCharacterValue {
   if (self.length == 0) {
      return USHORT_MAX;
   }
   return [self characterAtIndex:0];
}

@end

Aus Deinem Beispiel geht nicht hervor, von welcher Datengrundlage Du ausgehst. Wenn Du einen einzelnen char in einer Nicht-Unicodekodierung hast (z. B. MacRoman oder WinLatin 1), dann kannst Du das über +[NSString stringWithCString:encoding:] lösen. Oder Du nimmst, was vermutlich effizienter wäre, iconv.
 
  • Gefällt mir
Reaktionen: joecze
Zurück
Oben Unten