2009-11-26 8 views
6

iphoneアプリケーション用のunsigned char *にNSStringを変換しようとしています。私はこの目的のCとiphoneアプリケーションのために新しくなっていますので、これを手伝ってください。 NSStringをunsigned char *に変換するのに役立つapiがあるかどうか。iphoneアプリケーションのNSStringをunsigned char *に変換する

おかげで、 KamalBhr

答えて

0

あなたは

- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding 
+0

NSISOLatin1StringEncodingをいただきありがとうございますクイック応答..私はこのコードを試しています.... FileString = [[NSString alloc] initWithContentsOfFile:defaultPath]; 符号なしchar * finalstring = [FileString UTF8Char];しかしそれはコンパイルされていません.. – KamalBhr

4

NSString referenceを使用しようとすることができ、あなたの助けです。

- (const char *)UTF8String; 
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding 
- (BOOL)getCString:(char *)buffer maxLength:(NSUInteger)maxBufferCount encoding:(NSStringEncoding)encoding 

をし、またsimilar questionあります:NSStringのは、c-文字列に変換し、これらの機能を持っています。

+0

あなたの素早い応答のために大変ありがとうと私は解決策を得ました..に関して kamalBhr – KamalBhr

19

質問はあなたが心配しなければならない唯一のものではないので、質問は誤ったノーマーです。アクセスを心配する必要があるだけでなく、エンコーディングについても心配する必要があります。あなただけのあなたが離れて得ることができるよりも、UTF8エンコーディングをしたいと仮定:

NSString *myString = @"Hello"; 
const unsigned char *string = (const unsigned char *) [myString UTF8String]; 

場合は、しかし、あなたはASCIIのように、あなたはおそらく他のエンコーディングのいずれかをしたいよりも、文字データごとに1バイトにアクセスする必要があります:

NSString *myString = @"Hello"; 
const unsigned char *string = (const unsigned char *) [myString cStringUsingEncoding:NSASCIIStringEncoding]; 

使いたいかもしれない他の貴重なエンコーディングは西ヨーロッパと米国のほとんどの言語で使用されるアクセント付き文字や記号と一緒に、あなたの標準的なASCIIを取得Latin1の、次のとおりです。

+0

+1 'NSISolatin1StringEncoding'について+1。文字列に128以上の符号なし値を持つグリフが含まれているため、NSASCIIStringEncodingが失敗しました。 – PassKit

関連する問題