UTF8 を使用する必要はありません。代わりに Unicode ( NSUnicodeStringEncoding ) を使用してください。
このオプションが表示される場合は、NSStringEncoding
次のオプションが表示されます (さらに多くのオプションがあります)。
enum {
NSWindowsCP1253StringEncoding = 13, /* Greek */
NSUTF16StringEncoding = NSUnicodeStringEncoding,
NSUTF16BigEndianStringEncoding = 0x90000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
NSUTF16LittleEndianStringEncoding = 0x94000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
NSUTF32StringEncoding = 0x8c000100,
NSUTF32BigEndianStringEncoding = 0x98000100, /* NSUTF32StringEncoding encoding with explicit endianness specified */
NSUTF32LittleEndianStringEncoding = 0x9c000100 /* NSUTF32StringEncoding encoding with explicit endianness specified */
};
typedef NSUInteger NSStringEncoding;
特定のギリシャ語を確認できます。NSWindowsCP1253StringEncoding
うまくいかない場合は、他の UTF16 または UTF32 を使用してみてください。しかし、ユニコードはあなたのために働くと思います。
- 編集
NSLog(@"%s",string);
Unicode 文字をデコードできないことに注意してください。だから、それは本当に混乱を示します。
動作するかどうかをテストするには、変換を行い、やり直します。同じであれば、データを失うことはありません。
const char *cLetter = (const char *)[letter cStringUsingEncoding:NSUnicodeStringEncoding];
NSString *original = [NSString stringWithCString:cLetter encoding:NSUnicodeStringEncoding];