我試圖將NSString轉換爲unsigned char * for iphone應用程序。我是新近爲這個目標C和iPhone應用程序,所以請幫助。是否有任何API可以幫助將NSString轉換爲無符號字符*。將NSString轉換爲unsigned char * for iphone應用程序
感謝, KamalBhr
我試圖將NSString轉換爲unsigned char * for iphone應用程序。我是新近爲這個目標C和iPhone應用程序,所以請幫助。是否有任何API可以幫助將NSString轉換爲無符號字符*。將NSString轉換爲unsigned char * for iphone應用程序
感謝, KamalBhr
你可以嘗試使用
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding
NSString reference是你的幫助。 NSString有功能將其轉換爲C-字符串:
- (const char *)UTF8String;
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding
- (BOOL)getCString:(char *)buffer maxLength:(NSUInteger)maxBufferCount encoding:(NSStringEncoding)encoding
而且還有一個similar question。
非常感謝您的快速響應,我得到了解決方案.. 關於 kamalBhr – KamalBhr 2009-11-26 11:52:45
嗯,這個問題有點不正確,因爲打字不是唯一需要擔心的事情。您不僅需要擔心訪問,還需要擔心編碼。假設你只是想UTF8編碼,比你能逃脫:
NSString *myString = @"Hello";
const unsigned char *string = (const unsigned char *) [myString UTF8String];
但是,如果你需要訪問每個字符的數據一個字節,可能比你想要的其他編碼的一個,像ASCII:
NSString *myString = @"Hello";
const unsigned char *string = (const unsigned char *) [myString cStringUsingEncoding:NSASCIIStringEncoding];
,你可能需要使用的其他有價值的編碼是Latin1的,它可以讓你的標準ASCII,與西歐和美國的大多數語言使用重音字符和符號一起:NSISOLatin1StringEncoding
+ 1'NSISOLatin1StringEncoding'。 'NSASCIIStringEncoding'失敗,因爲我的字符串包含無符號值大於128的字形。 – PassKit 2014-08-21 10:11:43
謝謝你快速回復..我正在嘗試這個代碼.... FileString = [[NSString alloc] initWithContentsOfFile:defaultPath]; unsigned char * finalstring = [FileString UTF8Char];但它沒有編譯.. – KamalBhr 2009-11-26 11:49:26